Cでmdbファイルを使用したい。

[戻る]
パズー 2002/03/10(日) 20:05:53
VC6.0でCによる作成で
MFCライブラリを使わずにmdbファイルにアクセスしたいのですが
VBの用に簡単にいかないのでどうしたいいか教えてください。
DAOやADOを直接使用できないのでしょうか。

alexios [E-Mail] [HomePage] 2002/03/12(火) 02:17:21
比較的新しいACCESSのヘルプファイルにはVC++を使ったデータベースアクセスの例が載ってい
ます。私はOfficeXP Developerを昨年買いましたが、MSDEに載っていなかったサンプルが載っ
ていました。
そこにはまず
#import "C:\Program files\common files\system\ado\msado15.dll"
とアドレスをハードコーディングすることから始まっています。もちろん、adoがセットアップ
されていなければなりません。
最初どうにもこれが気持ち悪くて、とっつきにくかったのですが、どうしても作りたいものがあ
って日経BP社のVisual C++6.0データベース編というのがいい参考書で、結局これが一番いい方
法であるということで納得して作りました。
なぜMFCを使ってはいけないのでしょうか。VBの時にはVBのランタイムは必要なはずです。
VC++には一応全部のDAOのヘルプがついています。
それからMFCのウィザードということではDAOやODBCのものは割りと簡単にフォームが作れるの
ですが、ADOのサンプルは初期のものはあまりきれいなものがありません。私はプログラマと呼
ぶにはもったいないアマチュアですが、実はADOやOLEDBがcomに基づいた奥が深いものだという
ことをC++をやって初めて知りました。
後、大変だったのは、ACCESS VBAなどでは意識することのないVariant型の型変換をやらなけ
ればならないという点です。
なかなかこのあたりの情報が、皆さんお困りのようですね。私も、データベースに放り込むデー
タをMIMEからデコードするやり方がわからないで、あちこち掲示板を覗いているのですが、こ
ちらからお答えすることのほうが多いようです。

パズー 2002/03/12(火) 13:29:12
>日経BP社のVisual C++6.0データベース編
見てみます。
>MFCのウィザードということではDAOやODBCのものは割りと簡単にフォームが作れる
確かに私も思います。
>なぜMFCを使ってはいけないのでしょうか
仕様でそうなっていてどうにもなりません。

しかしどこかにTipsころがってないですかねぇ・・・・
安易すぎかもしれないけど。

CからC++は簡単に移植できるけど逆はほんと大変です。

sugar 2002/03/12(火) 14:23:44
これ...参考になるかな。

http://msdn.microsoft.com/library/default.asp?url=/library/en-
us/ado270/htm/mdmscadocodeexamplesinvisualc.asp

パズー 2002/03/12(火) 21:11:58
>これ...参考になるかな。
まだわかんないけどMFC使わなくて済みそうだし
いけるかもしれません。
これから試行錯誤してみます。
うまくいったら結果を知らせます。
情報ありがとうございます。

パズー 2002/03/17(日) 01:44:33
やはりMFCでコンパイルしないとだめなようです。
MFCライブラリを使用しないで作成するのは
相当困難なのかも・・・

alexios [E-Mail] [HomePage] 2002/03/18(月) 06:41:00
あちこち、書いておられますね。
項目がわかるようにMSDEの目次をそのままコピーしました。
コードそのものはsugarさんと同じですが。
 

MSDN ライブラリ 2001 年 10 月 
 MSDN ライブラリへようこそ 
 MSDN ライブラリ スタート ページ 
 ライブラリ最新情報 
 DVD-ROM 情報ページ 
 Column This Week 
 MSDN News 
 MSDN リソース 
 MSDN サブスクリプション情報 
 MSDN ライブラリをより活用していただくために 
 Visual Studio 6.0 ドキュメント 
 Visual Studio ドキュメント 
 Visual Basic ドキュメント 
 Visual C++ ドキュメント 
 Visual InterDev ドキュメント 
 Visual J++ ドキュメント 
 Visual SourceSafe ドキュメント 
 Office 開発環境 
 Office 開発環境について 
 Office XP ドキュメント 
 Office 2000 ドキュメント 
 Visio 
 Embedded Developer ドキュメント 
 SQL Server 2000 Windows CE Edition 
 Windows CE アプリケーション フレームワーク 
 プラットフォーム SDK ドキュメント 
 プラットフォーム SDK ドキュメント(日本語) 
 .NET Enterprise Servers 
 Microsoft BizTalk Server 2000 
 Commerce Server 2000 
 Internet Security and Acceleration Server 2000 
 Microsoft SQL Server 2000 
 グラフィックおよびマルチメディア サービス 
 DirectX 
 DirectX 8.0 (C++) 
 DirectX 8.0 (Visual Basic) 
 Windows Media 
 Windows Media Player 7 SDK 
 Windows GDI 
 Windows マルチメディア 
 色の管理 
 システム管理サービス 
 コンポーネント サービス 
 Microsoft Transaction Server 2.0 Service Pack 1 
 データ アクセス サービス 
 Microsoft ActiveX Data Objects (ADO) 
 ADO プログラマーズ ガイド 
 概要 
 ADO の新機能 
 前提条件 
 ライブラリの ADO ファミリ 
 Universal Data Access における ADO の役割 
 ADO ライブラリの参照 
 ADO のインストールおよび再配布 
 ADO タスク表 
 ADO テクノロジ表 
 セクション I: ActiveX Data Objects (ADO) 
 第 1 章: ADO に関する基本事項 
 第 2 章: データの取得 
 第 3 章: データの検査 
 第 4 章: データの編集 
 第 5 章: データの更新および永続化 
 第 6 章: エラー処理 
 第 7 章: ADO イベントの処理 
 第 8 章: カーソルとロックの概要 
 第 9 章: データ シェイプ 
 第 10 章: Record オブジェクトと Stream オブジェクト 
 セクション II: リモート データ サービス (RDS) 
 第 11 章: RDS に関する基本事項 
 第 12 章: RDS チュートリアル 
 第 13 章: RDS の使用およびセキュリティ 
 セクション III: ADO (多次元) (ADO MD) 
 第 14 章: ADO MD に関する基本事項 
 セクション IV: ADO Extensions for Data Definition Language and Security (ADOX) 
 第 15 章: ADOX に関する基本事項 
 セクション V: 付録 
 付録 A: プロバイダ 
 付録 B: ADO エラー一覧 
 付録 C: ADO を使用したプログラミング 
 付録 D: ADO サンプル 
 ADO 用語集 
 ADO プログラマーズ リファレンス 
 ADO API リファレンス 
 ADO オブジェクト モデル 
 ADO オブジェクト 
 ADO コレクション 
 ADO プロパティ 
 ADO ダイナミック プロパティ 
 ADO メソッド 
 ADO イベント 
 ADO 列挙定数 
 ADO 構文インデックス 
 ADO コードの例 
 RDS API リファレンス 
 ADO MD API リファレンス 
 ADOX API リファレンス

パズー 2002/03/18(月) 12:53:02
[[解決]]
いろいろありがとうございました。
とりあえず解決しました。
やり方としてはsugarさんの情報を元に作成しました。
しかし、検索には向いてないようで速度に問題が残っています。
もっと速く検索する方法はないものかと探しています。
SEEKの方が速いのかなとテストしている最中です。
皆さん本当にありがとうございました。

古いスレッドには追加発言できません。