• ベストアンサー

ADOとAPI

アクセスで普段からADOを使ってデータの追加などをしているのですが これは「APIを使っている」という事になるのでしょうか? ADOとAPIは似ているのですか? APIはDeclareで宣言して使うものだと思ってたのですがADOを使うにおいてDeclareは使っていません。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

API とは、どのような意味で使用しているのでしょうかね? 具体的に何のAPIと書かないと汎用的な意味で使用しているのかWin32 APIなどをさしているのか、判断できません。 というのも、ADOと比較しています。あれ????? http://search.yahoo.co.jp/search?p=%22VB%22+%E2%80%9DADO%E3%81%A8%E3%81%AF%E2%80%9D&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt なんて検索するとでてきますが、同列での意味ではないですよね。APIは汎用としての略語ですし、いろんな物に「API」の修飾語がつきます。 それに反して、ADOは特定の仕組みを指します。COMを使用できる言語では、いろんな所から呼び出せます。 プログラム内からの呼び出しの違いでAPIか、そうでないかを決めるの違います。提供側(ハードメーカーとか、OSメーカーとか、特定のアプリの開発環境をSDKとして渡すメーカー)がAPIとして提供する場合、具体的に名前に Win32 API なんて感じでAPIをつけます。これだけをAPIだと思っていませんか? 汎用語ですので、広義の意味では http://e-words.jp/w/API.html ですので、ADOを、広い意味ではODBC(OLE DB)にアクセスするためのAPIとしてもいいわけです。ただADOとは、それをカプセル化してCOMとして提供されているので、COMをデフォルトで使える言語では、 単にインスタンスを作成するだけでOKなんです。 http://search.yahoo.co.jp/search?p=%22API%E3%81%A8%E3%81%AF%22&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt それぞれの該当サイト見たあと http://www.atmarkit.co.jp/fdotnet/vb6tonet/vb6tonet28/vb6tonet28_03.html を見れば、それぞれのAPI郡の呼び出し方が違うだけの話であることが、わかるかと思います。 どうやって呼び出すかは、提供側(APIを)が、このインターフェースで提供します。と明示されます。その時、プログラム言語側が、そのインターフェースに対応していないと、取りこめません。ミドルウェアーを自分で作るか、別言語で書き直す。なんてことを行います。 http://otndnld.oracle.co.jp/beginner/odpnet/2_1/index.html このようなサイトを見ると、インターフェースなどと汎用語で説明しているので(「ADO.NET インターフェースの概要」)、わかりやすかと。

erasefaatwe
質問者

お礼

自分自身もよくわかってないのにこのような質問をしてしまいました。よく読んでみます。ありがとうございました。

関連するQ&A

  • APIは極力使わない方が良い?

    アクセス+VBAでシステム構築しています。 VBAで色々記述しているのですが 先輩から「なるべくAPIは使わないでくれる?」と言われました。 とりあえず「わかりました」と答えましたが理由は聞けませんでした。 APIを使う事によって不都合が発生する理由は何でしょう? 開発環境は WIN7、アクセス2007 ADO・DAOを使う シングルユーザー(共有なし) です。 ご回答よろしくお願いします。

  • ADOを覚えれば可能?

    accessで複数のパソコンから同時にMDBファイルを開いて テーブルの追加・更新などを行いたい場合は、ADOの知識があれば可能ですか? 複数のPCで一つのファイルを開いた場合、 読み取り専用になってしまいテーブルの更新ができません。 VBAのADOを覚えれば回避できるのでしょうか?

  • Excel VBA で Win32API CreateFileA などの String型引数は、なぜ ByVal?

    Excel VBA から Win32API を実行する場合の、String型引数に関する質問です。 【背景】 Win32API の CreateFileA,MoveFileA,DeleteFileA など、関数名最後が "A" となている関数の String型引数は、全て Declare文で ByVal と宣言しないと上手く動作しません。 しかし VisualC++ のヘッダファイルでこれらの "A" 付き API の宣言を見てみると、文字列型の引数は全てアドレス渡しとして宣言されています。BVA での上記の宣言と矛盾しており、ByVal で上手く動作するのが不思議でなりません。 また VC++ で自分で作成した DLL関数の文字列型引数の場合は、BVA のDeclare文で ByRef と宣言しなければ上手く動作しません。これは上記の VC++ ヘッダファイルの API関数の宣言と辻褄が合っており、やはり、Declare文で "A"付き APIの場合に ByVal としなければならない事が矛盾しているとしか思えません。 【質問】 いったいこれは、どうなっているのでしょうか?? この場合("A" 付き API の場合)、どうして ByRef でちゃんと動くのでしょうか? また String型の場合 ByRef では効率が悪いと思うのですが、なぜ ByRef が採用されているのでしょうか? サルにでも分かるように説明して頂ければ幸いです。 【私の知識レベル】 C++ ではなく C言語 においては、アセンブラレベルでのコード及び動作を理解しております。 オブジェクト,クラス,メソッドなどの用語は一応理解しているつもりですが、C++ ならではのオブジェクティブな言語仕様は理解していません。 へんな質問かも知れませんが、よろしくお願いします。

  • ADO.NET 接続型とは?

    接続型と非接続型の違いがいまいちわかりません。 データ → 新しいデータソースの追加で データベースを関連付けることを接続型と言うのでしょうか? でもこれだと、コードを書いてないからADO.NETを使ってないから、接続型も非接続型のどちらでもないですか?

  • ADOとADODB.Streamって同じものですか

    アクセスでデータベースにつなぐためにADOは良く使いますが ググってるとADODB.Streamがヒットする時が多々あります。 ADODB.StreamはADOと同じようなもの(データベースに接続する系)なのでしょうか? でもさらっと見てると文字コードを変換したり テキストにデータを書き込む記載が多いのですが、ADOとは別物ですか?

  • ADOって?

    ADOとは何でしょうか?どのようなものでしょうか? ADOとADO.NETは何が違うのでしょうか? このような事が載っているサイトありませんか?

  • ADOによる列の追加について

    access2000を使用しており、 最近ADOについて勉強しています。 しかし、ADOが難しく、大変困っております。 テーブルAの数量を判断して、列の最後に 列「判別」(奇数か偶数かを判断)を追加したいと 思っています。どのようにADOを書けばよいのでしょうか? テーブルA  数量  4  1 テーブルB  数量 判別   4 偶数   1 奇数

  • access2000のADO

    Access2000を使い始めて4年ほどになりますが、最近ようやくADOの事を知りまして、早速MSDTをインストールしました。 テーブルを作り始めたのですが、規定値などの設定に使えるコマンドがJETとは少し違うみたいで参考書を探しています。ADO入門用のテキストは購入し、大まかなことは分かったんですが、もう少し詳しいテキストで、何かいいものがありましたら教えてください。よろしくお願いします。

  • ADOを使えます。どのくらいのレベルでしょうか。

    Accessの一つのmdbファイルをデータベースとして、Excelをインターフェイスとして、システムを作れます。具体的には、成績データベースを作り、ADOによってExcelのシートにデータベースのデータを抽出して取り出し、そこで入力・編集を行い、ADOによってデータベースのデータ変更を確定させるという方法で、一つのmdbファイルを複数の端末におけるExcelによって書き込んでいます。 こういうことができるレベルってどのくらいのレベルなのでしょうか。

  • ADOでデータを送ってる最中はアクセスで検索やテー

    読み取り専用のエクセルファイルで エクセルのvbaでADOでエクセルデータをアクセスに転記してる時に アクセスでフィルタをかけてるとフリーズします。 ADOでデータを送ってる最中は アクセスで検索やテーブルへのアクセスはできないのでしょうか?

専門家に質問してみよう