5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

ADO DAO など接続方法について

1 :名無しさん@お腹いっぱい。:03/07/24 15:23 ID:CSftoEyv
でわ どうぞ

2 :名無しさん@お腹いっぱい。:03/07/24 16:29 ID:???
2ゲッツ

ADO使ってまつ。

3 :名無しさん@お腹いっぱい。:03/07/25 00:58 ID:???
3ゲッツ

いまだにDAO使ってまつ。

4 :名無しさん@お腹いっぱい。:03/07/25 01:41 ID:5JcyhWeh
4ゲッツ

挙動不審。

5 :bd:03/07/25 12:43 ID:LAVHBhck
5ゲッツ

昔、RDO使いました。

6 :名無しさん@お腹いっぱい。:03/07/26 01:02 ID:???
ODAはどうですか?

7 :名無しさん@お腹いっぱい。:03/07/26 21:31 ID:elfzkiv/
ADOは便利で良い

8 :あぼーん:あぼーん
あぼーん

9 :名無しさん@お腹いっぱい。:03/07/27 17:55 ID:NiRE5fLb
とりあえず触り始めるなら何から始めるのがいいの?

10 :名無しさん@お腹いっぱい。:03/07/27 21:49 ID:0H3QzBoa
とりあえずならEXCELとか

11 :名無しさん@お腹いっぱい。:03/07/28 00:08 ID:???
つうか、>1は「ミドルウェア」という言葉を知らんのか。

12 :ぼるじょあ ◆ySd1dMH5Gk :03/08/02 04:57 ID:???
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

13 : :03/08/11 15:57 ID:???
OLE DB との関係を知りたい。

14 :山崎 渉:03/08/15 23:05 ID:???
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

15 :名無しさん@お腹いっぱい。:03/08/16 21:57 ID:T73IrABO
ADO2.7は完成に近いな
ADO.NETはベータ版といっても過言ではない(w

16 : :03/09/02 18:22 ID:QN2j0ONe
MDB ファイルにアクセスするためのOLE DB のプロバイダとして、
次の3つがあるらしいんですが、どれを選べばいいんでしょうか?

Driver do Microsoft Access (*.MDB)
Microsoft Access Driver (*.MDB)
Microsoft Access-Treiber Driver (*.MDB)

17 :名無しさん@お腹いっぱい。:03/09/02 18:48 ID:am2gqDXu
長瀬愛ちゃんがセーラー服姿で大奮闘!小さな身体にルーズソックスがよく似合います。
お得意の騎上位での腰振りは必見です!!今すぐサンプルムービーで確認だ!

http://66.40.59.77/index.html

18 :名無しさん@お腹いっぱい。:03/09/03 12:05 ID:N3LmD+Lo
>16

Microsoft Access Driver (*.MDB) かな
 これしか使ったことないや

19 :名無しさん@お腹いっぱい。:03/09/03 12:07 ID:N3LmD+Lo
VB6からADO使うとき
参照設定を使います?
それともCreateObjectしてます?

それぞれのメリット、デメリットを教えてください。

20 :名無しさん@お腹いっぱい。:03/09/03 14:54 ID:???
>19
アーリーバインディング、レイトバインディングについてぐぐれば自ずと答えは見つかるであろう。
もしくは、マ板VBスレかな。

21 :名無しさん@お腹いっぱい。:03/09/03 19:12 ID:N3LmD+Lo
>20
 さんきゅ
 その辺はなんとなくはわかっている。

 確かにここで聞く内容ではないかもしれないが...
 参照設定でADO2.7を指定したとして
 コンパイルしたものを動かす時にADO2.8が入っていたら
 使われるのはどっち?

 あと、この場合にCreateObjectなら最新の2.8が使われる?

22 :あぼーん:あぼーん
あぼーん

23 :名無しさん@お腹いっぱい。:03/09/28 08:43 ID:???
DAOのころは、参照設定で3.5を指定しといて
実行環境に3.6しか無かった場合、FormatとかLeft関数で固まるというのが定番だったが。
んで、結局CreateObjectに書き換えるハメになり、参照設定の存在意義に激しく疑問を持ったりする。

ADOも同じでは?

24 : :03/10/02 22:56 ID:eBGDKX8D
Accesss 2002 以降では、 DAO まったくつかわずにすむ?
たとえばタイトルバーの変更って出来る?
ACCESS総合相談所 その9
http://pc2.2ch.net/test/read.cgi/bsoft/1061828549/324-326

25 : :03/10/03 12:49 ID:nrvZVvZS
MDB ファイルにおいて、フォームに関連付けられたレコードセットは
Access 2000 では DAO の Recordset ですが、
Access 2003 では ADO の Recordset に変わっているのでしょうか?

26 : :03/10/03 12:54 ID:nrvZVvZS
How to Bind Microsoft Access Forms to ADO Recordsets
http://support.microsoft.com/default.aspx?kbid=281998

Access 2000 ADO Traps Watch out for these ADO inconsistencies.
By Ken Getz, Technical Editor
http://vbadvisor.com/Articles.nsf/dp/8B65AB3EFB722D70882568A7001BEDE3

27 :MDB ファイルにおいては:03/10/03 13:23 ID:nrvZVvZS
1) フォームの Recordset プロパティには ADODB.Recordset も DAO.Recordset も
  突っ込むことが出来る。ただし、ADO.Recordset を突っ込んだ場合は、その
  インスタンスが MSDataShape / SQL Server OLEDB プロバイダで開かれている場合しか
  データの更新を行うことが出来ない。

2) Access 2002 以降では、他の OLEDB プロバイダで開かれている ADODB.Recordset
  のインスタンスをフォームの Recordset プロパティに代入した場合であっても、
  データの更新を行うことが出来る。 ただしその Recordset インスタンスが
  unique はインデックスを含んでいなければならない。もちろん主キーでもいい。

ということらしい。

28 :MSDataShape:03/10/06 19:27 ID:EXS7RuSj
OLEDB サービスプロバイダとして、 MSDataShape というのがありますが、
データシェイプというのはいったいどういう機能なのでしょうか?
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdmscrequiredprovidersfordatashaping.asp

そもそも OLE DB 技術におけるサービスプロバイダとデータプロバイダの区別がよくわかっていません。
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdrefmsdatashape.asp

データプロバイダ
直接、またはサービス プロバイダを介して ADO アプリケーションにデータを公開するソフトウェア。

サービスプロバイダ
データの作成や利用によってサービスをカプセル化し、
ADO アプリケーションの機能を拡張するソフトウェア。
プロバイダは、データを直接公開する代わりにクエリ処理などのサービスを提供します。
サービス プロバイダは、データ プロバイダによって提供されたデータを処理します。

29 :MSDataShape:03/10/06 19:32 ID:EXS7RuSj
SQL Server に接続するときの ADO における接続文字列は次のようになります。
Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=pubs;Data Source=bsas

http://www.int21.co.jp/pcdn/vb/noriolib/vbmag/9910/db_solu/
によると、サービスプロバイダとして MSDataShape を利用したときの接続文字列は次のようになります。

データプロバイダが SQL Server の場合
Provider=MSDataShape.1;Persist Security Info=True;Locale Identifier=1033;Data Source=bsas;User ID=sa;Password="""";Initial Catalog=order;Data Provider=SQLOLEDB.1
データプロバイダが Jet データベースエンジンの場合
Provider=MSDataShape.1;Persist Security Info=False;Data Source=order;Data Provider=MSDASQL

MSDataShape を使うときには別途 Data Provier を指定しなければなりませんが、
これはどのようなプロバイダでも指定できるのでしょうか?

30 :名無しさん@お腹いっぱい。:03/10/09 12:31 ID:???
プロバイダに結合を任せるとき
グリッドコントロール等で階層表示させるときに使う

31 :NAME IS NULL:03/10/18 11:52 ID:???
みんな ADO Recordset で Collectメソッドって使ってる?
rs.Fields(xxx).Value と書くより rs.Collect(xxx) と書く
方が速いらしい。
http://www.microsoft.com/japan/msdn/data/techmat/mdac/impperf.asp
の2.5

32 :NAME IS NULL:03/10/24 08:15 ID:ESRhBeXa
>>27
> 1) フォームの Recordset プロパティには ADODB.Recordset も DAO.Recordset も
>   突っ込むことが出来る。ただし、ADO.Recordset を突っ込んだ場合は、その
>   インスタンスが MSDataShape / SQL Server OLEDB プロバイダで開かれている場合しか
>   データの更新を行うことが出来ない。

Access 2000 で ADODB.Recordset のインスタンス x を
フォームの Recordset プロパティに代入するには、
x が adOpenStatic で開かれている必要があります。

33 :NAME IS NULL:03/10/24 08:15 ID:ESRhBeXa
>>32 とうぜん、 adOpenStatic で開いているわけですから、
更新は不可となります。

34 :NAME IS NULL:03/10/29 00:50 ID:???
ADO.NETを勉強しています。

35 :NAME IS NULL:03/10/31 11:38 ID:s8J5VFuX
ADO の接続文字列って、結局のところ UDL ファイルの中身と同じなんですよね?
つーか、UDL ファイル = ADO の接続文字列 と思っていいんでしょうか?

36 :NAME IS NULL:03/10/31 11:45 ID:s8J5VFuX
汎用データ リンク (.udl) ファイルの作成と設定
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vxtskCreatingConfiguringUniversalDataLinkFiles.asp?frame=true
汎用データ リンク (.udl) ファイルを使用するためのデータ コントロールの設定
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vsintro7/html/vxtskConfiguringDataControlstoUseUniversalDataLinkFiles.asp?frame=true
あちゃ、ここに書いてありました。そのまんま。

.NET Framework 開発者ガイド
ADO.NET での OLE DB データ ソースへの接続
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconconnectingtooledbdatasourceusingadonet.asp?frame=true

ADOからEXCELを検索する方法
http://www.fitweb.or.jp/~imai/developer/02021001.html

ここも参考になるかもしれない。
http://tuka.s12.xrea.com/index.xcg?page=UDL

37 :NAME IS NULL:03/10/31 13:54 ID:s8J5VFuX
ちょっと気になって、 UDL ファイルが何に関連付けられているか調べてみた。

[HKEY_CLASSES_ROOT\.UDL]
@="MSDASC"

だって… MSDASC ってなんじゃい…

38 :NAME IS NULL:03/10/31 14:22 ID:s8J5VFuX
で、MSDASC 自体はこんな感じ。

[HKEY_CLASSES_ROOT\MSDASC]
@="Microsoft Data Link"
[HKEY_CLASSES_ROOT\MSDASC\CLSID]
@="{CCB4EC60-B9DC-11D1-AC80-00A0C9034873}"
[HKEY_CLASSES_ROOT\MSDASC\DefaultIcon]
@="C:\\Program Files\\Common Files\\System\\Ole DB\\oledb32.dll,0"
[HKEY_CLASSES_ROOT\MSDASC\shell]
[HKEY_CLASSES_ROOT\MSDASC\shell\open]
[HKEY_CLASSES_ROOT\MSDASC\shell\open\command]
@="Rundll32.exe C:\\PROGRA~1\\COMMON~1\\System\\OLEDB~1\\oledb32.dll,OpenDSLFile %1"
[HKEY_CLASSES_ROOT\MSDASC\shellex]
[HKEY_CLASSES_ROOT\MSDASC\shellex\ContextMenuHandlers]
[HKEY_CLASSES_ROOT\MSDASC\shellex\ContextMenuHandlers\{2206CDB2-19C1-11D1-89E0-00C04FD7A829}]
[HKEY_CLASSES_ROOT\MSDASC\shellex\PropertySheetHandlers]
[HKEY_CLASSES_ROOT\MSDASC\shellex\PropertySheetHandlers\{2206CDB2-19C1-11D1-89E0-00C04FD7A829}]

39 :NAME IS NULL:03/10/31 14:56 ID:???
MSDASC.HLPを読むのだ

40 :NAME IS NULL:03/10/31 16:42 ID:s8J5VFuX
>>39 え?なにそれ?そんなもんが…探してみる。

41 :NAME IS NULL:03/12/04 23:22 ID:cBX51diu
ADOってAccess入れないと使えないんですか?
入れなくても使えるならどのDLLを取り込めばいいかきぼんぬ。

42 :NAME IS NULL:03/12/04 23:33 ID:???
>>41
MDACってヤツをMSDNオンライソで探せ

43 :NAME IS NULL:03/12/06 00:59 ID:6RBHB1qJ
>>41
OSにもよるが、2000/XPには標準で入ってる。
C:\Program Files\Common Files\System

44 :NAME IS NULL:03/12/11 23:28 ID:???
ADO.NETってどうなんでつか

45 :NAME IS NULL:03/12/12 06:06 ID:???
Microsoft SQL Server 2000 Desktop Engineを使うために
ADO.NETによるデータベースの操作を今即席で覚えたところです。
取り合えず使えそう。

46 :NAME IS NULL:03/12/14 17:36 ID:YVbPl7cU
VS.NETから使う場合って
ADOを使った方が良い場合もあるの?

47 :NAME IS NULL:03/12/14 21:17 ID:???
サーバカーソルが無いって聞いたけどマジで?

48 :NAME IS NULL:03/12/16 07:23 ID:XzkZ95Zy
ADOとADO.NETを使い分けるって事??

49 :NAME IS NULL:03/12/20 23:55 ID:8atjTsXZ
ADO.NETってどうなん?

50 :NAME IS NULL:03/12/21 15:55 ID:GuMnheLc
ADO.NETってどう

51 :NAME IS NULL:04/01/01 11:00 ID:???
oo4o てどう

52 :NAME IS NULL:04/01/03 00:41 ID:???
ADO.NETを卒研で使ってみました。

感想は普通です。

53 :NAME IS NULL:04/01/11 18:03 ID:79wcrGCr
ADO.NETは、DataSetが面白い。
XMLを使ってみたいときなら、これだね。

54 :NAME IS NULL:04/02/19 10:54 ID:???
ADO>RDO>>>>>>>>ADO.NET

55 :NAME IS NULL:04/02/20 09:37 ID:seawwUcC
DAOが泣いた

56 :NAME IS NULL:04/02/20 21:54 ID:C8z4sXKx
>>54
ODBC>ADO>RDO>>>>>>>>ADO.NET

ODBC API をCで直接叩くと速いぞ。

57 :NAME IS NULL:04/02/21 10:29 ID:???
DAOがまた泣いた

58 :NAME IS NULL:04/02/22 16:32 ID:0VBKEbgk
>>54
ADO.NET>ODBC>ADO>RDO>>>>>>>>ADO.NET(ODBC)

ODBCならADO.NETはのろい。専用のデータプロバイダ使うと速いぞ。

59 :NAME IS NULL:04/02/23 09:54 ID:1zYluZIV
>>21
2.8は使われない。ADOは
バージョンが違うと別製品。
エラーがでるよ。


60 :NAME IS NULL:04/03/03 16:43 ID:ObEOis4x
専用データプロバイダってSQLServer以外あるの?

61 :NAME IS NULL:04/03/03 19:28 ID:???
OO4OO

62 :NAME IS NULL:04/03/03 19:29 ID:???
ODP.NET

63 :NAME IS NULL:04/03/04 08:37 ID:jFfTGRKb
>>59
2.6までしか入ってない環境で
 2.7を指定したプログラム動かしてもエラー出ないよ

64 :NAME IS NULL:04/03/04 09:22 ID:H6fUd10V
.NET の専用データプロバイダ。最初から付いているのは、SQLServer用と Oracle用だけ。
他の主なやつ == MySQL, SQLite, PostgreSQL, Firebird など == が探せばある。
ODBC から使うより、SQLite なんて50倍以上(当社比)やたら速くなった。

65 :NAME IS NULL:04/03/04 18:47 ID:EIsw2cXw
>>21,63
スマンカッタ。
ADOのコンポーネント
(Connection等)は
VersionIndependentProgIDが指定されてるな。
バージョン依存はないね。
(ただし、バージョン特有のメソッドを使うとアウト)

はバージョンが違うとアウトなのはDAOだな
(たしか、コンパチブルバージョンあったが...)

66 :65:04/03/04 18:58 ID:EIsw2cXw
あれ?いやいや、参照設定(アーリーバインド)してると
ヤパーリ、エラーが出ると思うんだが...

VBならVersionIndependentProgIDで指定されている
名前(ADODB.Connection)で
CreateObjectで生成すれば、バージョン依存はないと思う。
>>63の環境は2.7で指定してても
そうやってConnectionを生成してない?

Dim con as ADODB.Connection ←エラー

↓例え違うバージョンをしてもエラーにはならない
Dim con as Object
Set con = CreateObject("ADODB.Connection")

オレの認識違ってたかな?


67 :65:04/03/04 19:00 ID:EIsw2cXw
s/↓例え違うバージョンをしてもエラーにはならない
↓例え違うバージョンを指定しても、オブジェクトを使わなければ
エラーにはならない。


68 :65:04/03/04 19:26 ID:EIsw2cXw
何度もスマン。
生成するなら
Dim con as New ADODB.Connection
だな。
つかCreateObjectで生成するなら
参照設定自体もいらないな。

69 :63:04/03/04 19:31 ID:jFfTGRKb
確かに動いてるのだが・・・

<VB>
参照設定で
Microsoft ActiveX Data Object 2.7 Library にチェック

Connectionは次のように宣言してる
Dim l_conObj As New adodb.Connection


<実行環境>
MDAC2.6  

普通に動いてます。
今までバージョンの違いでエラーになった事はないです。

70 :NAME IS NULL:04/03/04 20:46 ID:???
>>69
実行環境にOfficeがインスコされてない?
Officeでもインスコされるし...

実行環境で(VBの開発環境や、
OfficeのVBエディタの参照設定で)
2.7がインスコされていないと確実に確認しているのなら、
オレの認識が違っていたよ。

そういえば以前、確かに2.5で参照設定したプログラムを、
2.1しか入っていない実行環境で動かしたとき、
エラーが出た記憶があったけど、2.7からは違うのか。
記憶違いだったかなあ。

71 :NAME IS NULL:04/03/04 21:12 ID:???
試してみた。(ちょうどマシンがあった)

ADO2.7で参照設定させたプログラムを
ADO2.6ではないけど、ADO2.5まで
しか実装されていない実行環境で動かしたら
「ライブラリが見つかりません。」
と出たよ。

72 :NAME IS NULL:04/03/04 21:33 ID:jFfTGRKb
>>70
Microsoft の出してる MDACのバージョンをチェックできるツール(Component Checker 2.0)で
チェックしても 2.6SP1でした。

何か見落としてるのかなぁ...

73 :NAME IS NULL:04/03/09 18:42 ID:???
>>72
Officeのインストールや他の製品、アプリの
インストールにより単体でADOがインストール
される場合もある。

MDACのバージョンチェックするより、
>>70で書いてあるような方法や実際の
ライブラリファイルの存在をチェックした方
が確実。

さらに、ADOを使わせるアプリを配布するなら
同バージョンのMDACと一緒に配布するような
運用にした方がいい。
COMは便利だがその辺りの管理が大変
なんだよな...

74 :NAME IS NULL:04/03/14 01:04 ID:???
ADO.NETのDatasetで今までと同等の排他を実現する方法がわからん・・・そろそろSEになるべきか

75 :NAME IS NULL:04/03/21 21:16 ID:???
おぃおぃ、排他制御の分からないSEって怖杉。


76 :NAME IS NULL:04/05/05 23:14 ID:RyOBSdl+
.com

77 :NAME IS NULL:04/05/06 20:30 ID:S2jaAwgl
B'z BANZAI いい曲だよ


78 :NAME IS NULL:04/05/07 12:01 ID:FHJB9r9E
データプロバイダ
直接、またはサービス プロバイダを介して ADO アプリケーションにデータを公開するソフトウェア。



79 :NAME IS NULL:04/05/10 16:55 ID:p8dwGke5
ADO.NETで開発してるんだけど、本読んでもいまいちピンと来ない
いままでAccess使ってたけど、Accessはまだ何とか思う様に使えてた
VB.NET+ADO.NETは今までの感覚で使おうとするとイメージがわかない
もっと実務的な説明をした本とかサイトとかない?
そもそもADO.NETってどれくらい使われてるの?

80 :NAME IS NULL:04/05/12 13:13 ID:ynkBniEJ
Accessの方がむしろ特殊だろ。インターフェースと
データベースがごっちゃになってる方が気持ち悪いよ。

早いとこ、プログラム言語+DBMSという当たり前の
構文に慣れてくださいね。


81 :NAME IS NULL:04/05/30 20:25 ID:bMXmpqAC
>>80
おまいOODBはどうすんだ?


82 :NAME IS NULL:04/05/30 23:14 ID:???
MSDE2kにDBをこさえてVB6(ADO)で繋いでいるのですが、
mdbファイルを扱うときに便利に使っていた Index を用いた Seek が出来ません。

Supportメソッドでチェックしても、Index/SeekともにFalseです。

そういうモノなんでしょうか? MSのサイトを探しても明確な説明を見つける事が出来ませんでした。
Googleも彷徨いましたが同じ結果でした。

サポートの不可情報を示したポインタをご存じでしたら教えて下さいです。

83 :NAME IS NULL:04/06/13 09:47 ID:???
Seekはmdb専用

84 :NAME IS NULL:04/06/13 12:37 ID:rgRT/Ze1
VBでADO使ってますが、
ADO 2.7 はwindows98では動かせないの?
今はXPは2.7 win98は 2.0を使って別々にBuildしている。

XPでADO2.0を参照してbuildしても動作しないし、よくわからん。



85 :NAME IS NULL:04/06/14 21:54 ID:???
>84
つ[ Dim x as Object: Set x = createObject("ADODB.foobar") ]

86 :NAME IS NULL:04/06/16 16:15 ID:OZVwZZ/3
ADO2.7をダウンロードしてインストールしたら
WIN98でも動くようになりましたよ。
>85
 CreateObjectだと
 Command、Recordset、Connectionに全部グローバルにしてクリエートしないと
 いけないでしょ。おまけに参照をしないと、CursorPositionなんかの
 パラメータが、UNKNOWNになるし、、、結局参照をしないといけんでしょ。
  CreateObjectでやるメリットがわからん。


87 :NAME IS NULL:04/06/16 16:35 ID:???
とりあえず、アーリーバインディングとレイトバインディングについて勉強しる。

88 :85:04/06/16 22:33 ID:???
>86
> CreateObjectだとCommand、Recordset、Connectionに全部グローバルにしてクリエートしないと
 そうかな?自分はとりあえず使う関数内で個別に持たせたりしてるけど、まずいかな。

 CreateObject だと、自動的に現地にあるものをバインドしてくれるから参照設定とかしなくて
いいので楽チンでええのね。
まあバージョン違いで動かないこともあるかもしれないけど、それはアーリバインディングでも
同じだし(バージョン相違を検知できると言えばメリットだけど…)
 自分は VBScript か Access2000 VBA 使ってるから、前者はレイトバインディングのみ、
後者は ADOX とかをアーリバインディングで使うと参照設定してない環境でエラー吐くから
(はじめてでた時は「なんで date 関数しか使ってないところでエラーが…」とちと焦った)、
はじめから参照されてる ADO とかだけアーリバインディングで、ADOX や EXCEL とかは
開発中は参照設定しておいて、あらかたできるといちいち Dim objHoge as obj(ry とかしてみたり。

>87
こんなページ見つけた。難しいことは分からないけど、EBならデバッグが簡単で実行が速い、
LBなら多少バージョンとかが違っても適当にバインドしてくれるけど実行が遅いと言うことなのかな。
ttp://edocs.beasys.co.jp/e-docs/wls/docs81/jcom/overview.html#1107478

89 :NAME IS NULL:04/06/17 00:02 ID:???
CreateObjectだと「この環境では使えません」的なエラー
メッセージを出すのが楽だしな。Loopの中で毎回Createobject
でもしない限り、早さも大して変わらんよ。

っていうかみんなADO派なの?
おいらは今までDAO派だ。環境絡みのトラブルが少ないのと、
以前は大量の更新処理で明らかにレスポンスが良かったから。
(最近は違うのかな?)


90 :85:04/06/17 22:30 ID:???
>89
 自分は DAO は Access(Jet) 特化で ADO は汎用と聞いたので、
「なら ADO のほうが使いまわしができて得そうだ」と ADO に転んだのでした。
 実際に使ってみるとたいていの操作は ADO でできるし、DAO がいると
思ってたメタデータの操作も ADOX でできる、ということで DAO は
あまり良く知らなかったり。

 どうでもいいけど ADODB.Command のパラメタクエリを使うと手軽に
SQL Injection 攻撃を回避できると聞いたのだけど、これって更新可能な
RecordSet を取得したいときはどうするんだろう?

91 :NAME IS NULL:04/06/18 11:16 ID:???
ADOでJetにINSERTしようとしたら、
日付/時間型がどうしてもエラーになる。
JetだとDAOのほうが無難なのかな?

92 :NAME IS NULL:04/06/18 13:12 ID:???
日付を # で囲んでないとか?

93 :NAME IS NULL:04/06/18 15:55 ID:???
>>92
囲っても駄目。
項目名がSQLの予約語と同じ場合もこけます。
DAOに比べて制約が多いような感じ。

94 :92:04/06/18 23:14 ID:???
こちらの Win2000SP4+IE6SP1 の環境では以下の SQL で正常にテーブル作成、挿入、選択できたけれど。

プロバイダは Microsoft.Jet.OLEDB.4.0 で、HTA(VBScript) から
CreateObject("ADODB.Connection") で ADODB.Connection の生成を行い、
Connection.Execute で実行。

---
CREATE TABLE hoge(
foo datetime,
[long] datetime
);
insert into hoge(foo, [long]) values(#2004/06/12#, #2003/12/12#);
select * from hoge;
---

95 :79:04/07/01 12:20 ID:???
いろいろやってみて何とかVB.NET+ADO.NETが理解できるようになった。
自分のプログラミングスタイルみたいなものもできてきた。
しかしやっぱりADOでやってたときより手続きが多くて面倒に思う。
やってることはADOのときと変わらないのかもしれないが、
データセットへの読み込みと更新のタイミングを意識しないといけなかったり
考えることが多いように思う。

96 :NAME IS NULL:04/07/02 10:12 ID:dsBwbedd
テーブルの抽出時のようにインデックスを使ってADOのレコードセットの検索や抽出を
高速にすることはできますか?

テーブルにインデックスを設定しても rs.Supports(adIndex) はFalseになってしまいます。
rs.Index = "hoge" でエラーは出ないのですが速くはなりませんでした。

元々やりたかったのは、VBのDBグリッド上に全データを表示した状態で検索して
見つかったらその行に移動してハイライト表示、ということがやりたいのです。
(Accessのテーブル上で検索するようなイメージです)


97 :NAME IS NULL:04/07/03 02:15 ID:y02b0D0u
これを日本および海外で広めると病気が治るかもしれない。
オラウータンなどの
サルは自分と似ていない自分の子供を(子殺しする)殺す。
(立花隆『サル学の現在』平凡社より)

http://www.google.co.jp/search?q=cache:YzJwPXsiJZAJ:www.impala.jp/bookclub/html/dinfo/10110005.html+%E3%82%B5%E3%83%AB%E5%AD%A6%E3%81%AE%E7%8F%BE%E5%9C%A8%E3%80%80%E5%AD%90%E6%AE%BA%E3%81%97&hl=ja


98 :NAME IS NULL:04/07/14 13:00 ID:???
>>95
俺はループ文が減ってかなりすっきりしたが。
データセットは無視してデータテーブルしか使ってないが。

99 :NAME IS NULL:04/07/15 00:53 ID:???
ODP.NETは?

100 :NAME IS NULL:04/07/15 21:55 ID:OWyB2Is1
age

101 :NAME IS NULL:04/07/24 17:50 ID:dguKW2A+
とてつもなくアホな質問をさせて頂きますが、ADODB.Parameterプロパティを
つかって、PostgreやMySQLなど他社のストアドプロシジャー内のパラメタを
操作することって可能なのでしょうか・・。
例えばDilection,DataType,NumericalScaleなどを指定してAppendする等。。


102 :NAME IS NULL:04/08/12 00:37 ID:e6gyuWzU
とてつもなくアホな質問をさせて頂きますが、ADODB.Parameterプロパティを
つかって、PostgreやMySQLなど他社のストアドプロシジャー内のパラメタを
操作することって可能なのでしょうか・・。
例えばDilection,DataType,NumericalScaleなどを指定してAppendする等。。



103 :NAME IS NULL:04/08/24 13:20 ID:UZpf6U5w
>>102
http://archives.postgresql.org/pgsql-odbc/2002-05/msg00042.php

104 :NAME IS NULL:04/09/06 14:40 ID:WwQRpaCJ
VB.net ADO.net SQLSERVER2000にて

Data Source=(local)
Integrated Security=SSPI
Initial Catalog=DBName

で接続できているものを
LAN上の別のマシンから接続するにはどこを直せばいいのでしょうか?


105 :104:04/09/06 15:43 ID:???
104は忘れてください・・・

106 :NAME IS NULL:04/09/07 13:21 ID:???
>>95
でも、データベースとの接続を切って、ローカルで何でもできるようになったので、
融通が利くのは助かるよ。
カーソルにも縛られないしね。(場合によってはデメリットにもなるけど。)

107 :NAME IS NULL:04/09/25 00:01:05 ID:???
>>106 ADO.NET で非接続をウリにしてるみたいだだけど。
これって実装はどうなってるの? 楽観的ロック手法を採ってるのか、
それとも平然とロストアップデートが発生するのか。

おれは更新する場合は、やっぱり更新ロックを獲得するほうが好き。
なので、非接続を使うのにはかなり抵抗がある。

108 :NAME IS NULL :04/09/27 21:04:23 ID:XNBYnVX2
ADOとoo4oって混在させるとだめなの??

109 :NAME IS NULL:04/09/27 21:09:29 ID:XNBYnVX2
↑Oracleに接続するとき

110 :NAME IS NULL:04/09/28 07:56:59 ID:???
それならODP.NET使え

111 :NAME IS NULL:04/09/29 10:16:42 ID:gfkc305Q
Linux で稼動している MySQL に接続するための
OLE DB データプロバイダってどこにあるんでしょうか?

112 :NAME IS NULL:04/09/29 20:58:40 ID:???
                        |
                        |  
      ∩___∩              |  ぷらぷら
      | ノ  _,  ,_ ヽ        ((   |
     /  ●   ● |         (=)
     |    ( _●_)  ミ _ (⌒)    J  ))
    彡、   |∪|  ノ  
⊂⌒ヽ /    ヽノ  ヽ /⌒つ
  \ ヽ  /        ヽ /
   \_,,ノ      |、_ノ

113 :NAME IS NULL:04/10/24 23:33:58 ID:ISxKwZ7m
こんにちは
質問お願いします。

SQL Server2000をAccess2000のデータベースリンクでリンクを作ってDAOでアクセスしています。
この環境でデータのロックは可能でしょうか?

トランザクションは使えるのですがロックの仕方が分からなくて・・・
現在はフィールドに更新時間を持たせて、楽観的ロックみたいな感じで作っています。
しかし一部の画面で、開いた時に前もってレコードをロックしたいところがあるのです。

DAOでは無理だけどADOでは可能とか、そもそもAccessではそんな作り方はしないとか
何かアドバイスお願いいたします。

114 :NAME IS NULL:04/10/24 23:49:21 ID:???
DAOだとJETのロック方法を取るからレコードロックはできないんじゃないかな


115 :NAME IS NULL:04/10/24 23:57:18 ID:???
>>113
自前の排他テーブル作って管理すればいいんじゃないの?

116 :113:04/10/26 21:35:09 ID:???
>>114-115
レスありがとうございます。
やっぱり無理ですか。
そういうものだと思って違う方法を考えたいと思います。

排他管理テーブルは落ちた時の復帰方法を用意しないといけないので・・・

ありがとうございました。

117 :NAME IS NULL:04/10/27 12:49:55 ID:???
排他制御についての疑問ですが
あるプログラムAがテーブルAまたは、テーブルAをレコード単位でのロック
をかけた場合、プログラムBからロックかけにいったらどうなるのでしょうか?
(VB6.0 + ADO + SQLServer2000)
くだらない質問ですが反応お願いします

118 :NAME IS NULL:04/10/27 12:57:43 ID:???
どういうロックをかけるかによる。

119 :NAME IS NULL:04/10/27 13:48:55 ID:???
mr.Open "select * from t from a <100", cn, adOpenDynamic, adLockPessimistic
>>118
こんな感じで行単位ロックかけてみたんですが
同じロックをプログラムA、次にプログラムBが実行しようとすると
Bはこけるのでしょうか?

120 :NAME IS NULL:04/10/27 14:33:14 ID:???
mr.Open "select * from t where a <100", cn, adOpenDynamic, adLockPessimistic
↑間違い
mr.Open "select * from t from a <100", cn, adOpenDynamic, adLockPessimistic
↑○
でした。すいません。
両方ともリードしたレコードセットをアクセスに書き込み
それが成功すると、リードした内容だけにフラグを立てにいってます
そのフラグの立て方なんですがアクセスの内容とリード元を再度
開きなおしてつき合わせフラグ更新してます。
こんな感じでよいのでしょか?

121 :NAME IS NULL:04/10/28 17:16:58 ID:???
>>107
ええ、そうです。
CommandBuilderクラスとかを利用してUPDATE文やDELETE文を自動生成させた場合は、
WHERE文で、全ての列が行を取得した時と全く同じ値か、という条件が指定された更新文が作成されて、それを実行するという仕組み。
基本的には、行が変更されていたら更新文により影響を受けた行は0ですから、それを基に例外が発生と。
それで不十分なら、更新文は自分で作成することになり、更新日付とかの列を作ってチェックすることになるのかな。
ま、楽観的ロックではまずい場合は、SQL Serverなら、SqlTransactionクラスを利用してトランザクションを開始し、
ロック ヒント付きでSELECT文を発行して、ロックを掛けることになりますね。

122 :ちょっとかじった程度:04/11/05 12:24:51 ID:pLWjdrlp
一つお聞きしたいのですが、ゼンリン電子地図の編集機能で、地図内にピンを
立てたりできますよね?(知ってる人だけでいいです)
このピンを消したり、色を変えたりしたいのですが、何かいい方法しりませんか?
ゼンリンソフトのDBにアクセスして指示を与える感じになると思うのですが、、、
よくわかりません。当方、MSアクセスなら少々わかります。
その辺の説明の載っているサイト紹介でもいいです。

123 :NAME IS NULL:04/11/06 17:21:30 ID:???
>>122
ここで聞くべき内容なのか?

124 :122:04/11/06 23:53:31 ID:sbgXvQud
まー、そー言われると元も子も無いんですけど‥

わかりました、よそで聞きます。


125 :NAME IS NULL:04/11/08 20:08:59 ID:???
htaのJScriptでちょっと使ってます。
んで質問なんですがConnectionってcloseしないとまずいですか?
最初は画面更新のたびにopen&closeしてたのですが無駄っぽいので
今は起動時に開いて開きっぱなしにしています。

126 :NAME IS NULL:04/11/12 19:28:42 ID:???
ダオについて教えろ

127 :NAME IS NULL:04/11/12 20:16:10 ID:???
DAOは終わっています。
乗り換え先はADO.NETです。

128 :NAME IS NULL:04/11/14 16:26:47 ID:MDAlpVkU
DAOにトランザクション処理がないからって
ADOのトランザクション処理だけ借りて
その内側にDAOでデータにアクセスするというコードを見たことあるけど
それっていいの?

129 :NAME IS NULL:04/11/15 11:32:55 ID:???
>>128
DAO にも、BeginTrans/CommitTrans/Rollback メソッドと、トランザクションはあります。
ADO のそれと実装に違いがあるかまでは調べたことないけど。


130 :NAME IS NULL:04/11/17 20:51:58 ID:/2/q9DVK
へー
あったんだ
知らなかった

131 :NAME IS NULL:04/11/23 17:26:37 ID:???
DAOというかMDBのトランザクションって単に実際の更新をCommitまで先延ばししてるだけな気がする。
確かめたわけじゃないけどどうなんだろう。


132 :NAME IS NULL:04/11/23 17:28:50 ID:4wCfCYNp
ADO.NETって更新可能な結果セットをやめちゃったって理解でいいのかな?
データを更新するならInsertやUpdateを投げろってことだよね。
DataAdapterやDataSetオブジェクト使って生成したソース見てると
ADOとかのダイナセットやリザルトセットは裏側でこんなことをしてたんだ〜
って妙に感心するよ。

133 :NAME IS NULL:04/11/23 17:35:54 ID:1rnKV2ym
>>132
SQL鯖の特性に合わせてルール変更ウマー
とか妄想してまつww

134 :NAME IS NULL:04/11/23 23:48:16 ID:???
>>131

トランザクション開始時点で更新をオンメモリで行うそうな。だからトランザクションで囲んだ方が直接更新するよりパフォーマンスが上がる。

135 :NAME IS NULL:04/11/23 23:51:51 ID:???
>>134
大規模な更新をする場合、
メモリ不足→仮想メモリへいったん入って更新される→却って遅くなる ってのは無いの?

136 :NAME IS NULL:04/12/06 13:18:53 ID:???
Dim ac As Access.Application
Dim o As Access.AccessObject
Dim o2 As Object
Set ac = CreateObject("c:\a.mdb")
For Each o In ac.CurrentProject.AllReports
Call ac.DoCmd.TransferDatabase(acExport, "Microsoft Access", "C:\c.mdb", acReport, o.Name, o.Name)
Next
For Each o2 In ac.CurrentDb.TableDefs
If o2.Attributes = 0 Then
Call ac.DoCmd.TransferDatabase(acExport, "Microsoft Access", "C:\c.mdb", acTable, o2.Name, o2.Name)
End If
Next
ac.CloseCurrentDatabase
ac.Quit

137 :NAME IS NULL:04/12/07 20:11:20 ID:???
ADOで、mdbファイルに接続について質問です。(VB6)
SQL文にVBAで定義した自作関数を使ったクエリを
VB6から開くにはどのようにすればいいのでしょう?

開こうとすると、VBA関数が未定義というエラーが出て
オープンできません。

どなたか、よろしくお願いします。



138 :NAME IS NULL:04/12/07 20:21:14 ID:FdgLyTNz
あげてみます

139 :NAME IS NULL:04/12/11 01:13:39 ID:???
>>137
無理。

140 :デフォルトの名無しさん:04/12/23 10:22:10 ID:???
137>VBに実行クエリを持つだけの話なんじゃないの?
実行マシンにAccessが入っていないならそうするしかない。


141 :NAME IS NULL:05/01/14 13:37:47 ID:???
ConnectionStringの設定の仕方なんですがSqlServer2000に接続する場合
Driver=SQL Server;
Provider=SQLOLEDB;
の2種類があると思うのですが両者の違い、使い分けはありますか?


142 :NAME IS NULL:05/01/14 15:21:05 ID:???
>>141
Provider=OLEDBプロバイダ、Driver=ODBCドライバって感じだったかと。
SQLServer2005Betaをみてたらまたなんか増えてる模様。
.NET Framework Data Provider for SQL Server

143 :NAME IS NULL:05/01/14 15:32:03 ID:???
>>142 レスサンクスです
>Provider=OLEDBプロバイダ、Driver=ODBCドライバって感じだったかと。
ということはDriverで指定するとODBC経由で、OLEDBに比べて遅い接続ってことですかね?
>SQLServer2005Betaをみてたらまたなんか増えてる模様。
ってことはその増えたものはODBC経由でってことで
Driver=SQL Server
Driver=NET Framework Data Provider for SQL Server
の2種類を選択できるわけですか?

144 :NAME IS NULL:05/01/14 16:14:05 ID:???
>>143
ADOはOLEDB専用なので本来はProviderのみ指定可能です。
ADOからODBCを使う場合はOLEDB Provider for ODBC(MSDASQL)を指定する必要があります。
この場合MSDASQLに渡すパラメータとして接続文字列の途中にDSN=かDriver=が出てきます。
さらにProviderを省略すると暗黙でOLEDB Provider for ODBCを指定したことになるので、
実質ADOからODBCが直接呼び出せてるように見えます。

NET Framework Data ProviderについてはOLEDBのマネージドコード版らしくADO.NET
(それも.NET2.0以降と思われる)からのみ利用可能のようです。
ADOからSQLServer2005に接続する場合はOLEDBプロバイダのSQL Native Client(SQLNCLI)を
使うかDRIVER=SQL Native Clientと同名のODBCドライバを使う必要があります。

ADO.NET(.NET2.0以降と思われる)からOLEDBやODBCに接続するために次のドライバがあります。
NET Framework Data Provider for OLEDB
NET Framework Data Provider for ODBC
もうわけわかめwせdrftgyふじこlp;

145 :NAME IS NULL:05/01/14 17:08:41 ID:???
>>144
勉強になりました
>ADOはOLEDB専用なので本来はProviderのみ指定可能です。
.NETではOLEDBプロバイダのSQL Native Clientを使えってことですね


146 :NAME IS NULL:05/01/22 21:06:28 ID:???
>>144
この辺理解できると楽しいんだろうなー

147 :NAME IS NULL:05/01/27 00:32:49 ID:???
VB.NETで煮詰まってきますた。すいませんが質問させてくださいな。

主にDataGridで編集してるんですが、CommandBuilderで生成した
SQLを使って、DataAdapter.Updateを使いファイルに書き戻しを
しています。

このとき、「追加だけ」や「削除だけ」だと問題ないんですが、同
時に複数の操作をしてからVBアプリを再起動すると、追加した行が
DataGridに表示されません。DataViewで絞り込んだら出てくるん
ですが、なぜかテーブル全体表示だと見えないんです。

mdbファイルを自体をAccessで開いたら、きちんと書き込まれてま
す。そのままAccessで最適化を実行すると、それ以降はVBアプリ側
でもきちんと見えるようになるんですが、VBでいちいちJRO経由の最
適化をさせないといけないのでしょうか?

プログラムの起動時に力技を使って、JROからmdbファイルの最適化
をやったら、一応動くようにはなりました。でもこんな方法おかしい
と思うんで、私の知らない処理がまだあるのかと。

ttp://support.microsoft.com/default.aspx?scid=kb;ja;306287

ぐぐってもこの手の情報は少なくて苦労してます。 (´・ω・`)
VB.NET初心者スレではなんとなくスルーされてしまいました。

148 :NAME IS NULL:05/01/27 01:38:35 ID:???
CSVファイルを読み書きできるプロバイダってアリマセンか?

149 :NAME IS NULL:05/01/29 10:13:27 ID:???
csv schema.ini adoでぐぐりぇ

150 :NAME IS NULL:05/02/07 20:48:25 ID:51j7oZtE
DAOでIndexとSeekを多用したVBのプログラムを、MSSQLサーバ対応に
書き換えなければならないのですが、単純にFindFirstを使って書き換えると
データが多い場合死ぬほど遅くて使い物になりません。

OpenRecordsetにSQL文を指定して検索すれば早いけど、その後Move系を
使うので検索でレコードセットが絞られてしまっているとマズーです。

同等のプログラムを新たに書くつもりにならないとダメですかね?
プロジェクトが40個もあり、同名だがちょっとずつ分岐してるファイルが
たくさんあるような、いかにも馬鹿な作りになっているシロモノなので、
できるだけ機械的な書き換えで済ませたかったのですが・・・

151 :NAME IS NULL:05/02/10 06:23:50 ID:???
IndexとSeekを使ってるなら完全に作り直し。がんばれ。

152 :NAME IS NULL:05/02/19 00:50:15 ID:???
エクセルからADO使ってmdbファイルを呼び出してるんですが
日付範囲の抽出はこんな感じで出来てるんですが

Set cn = New Connection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source = " & Path & "\DATA.mdb;" _
& "Jet OLEDB:Database Password=****;"

cn.Open

SelCmd = "SELECT * FROM TABLE00 " _
& "WHERE 日付 BETWEEN #" & Range("B3").Value & "# " _
& "AND #" & Range("B4").Value & "#"

Set rs = New Recordset
rs.Open SelCmd, cn

Range("D11").CopyFromRecordset rs

DATA.mdbのTABLE00に入ってるデータで
IDの一番大きいデータ(最新のデータ)のrsを取り出す時は
どうすればいいんでしょう

153 :NAME IS NULL:05/02/19 00:57:09 ID:???
>>152
SelCmd = "SELECT * FROM TABLE00 " _
& "WHERE 日付 BETWEEN #" & Range("B3").Value & "# " _
& "AND #" & Range("B4").Value & "#" _
& " order by id desc"

154 :NAME IS NULL:05/02/19 15:13:21 ID:???
>>153
有難うございます
order by 覚えました

Set rs = New Recordset
rs.Open SelCmd, cn
Sheet99.Range("D11").Value = rs(0)

153の後にこんな風に続ける事で最新の日付やIDを取得
できました、有難うございました

42 KB
■ このスレッドは過去ログ倉庫に格納されています

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)