• ベストアンサー

VBのOO4OでSQL文

VBのフレキシブルグリッドにオラクルからデータを取って表示させているのですが、読み終わったら、今度はcloseしないといけない・・・とよく見るのですが、 どうやって記述したらよいかわかりません。。 ヘルプを参考に試してみたのですが、どうもうまくいきません。 レスいただけませんでしょうか? よろしくお願いいたします。

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

  • ベストアンサー
  • msystem
  • ベストアンサー率42% (79/186)
回答No.1

Oracleから、oo4oのDynasetでデータを取ってきて、それをとり終わったら、DynasetをCloseするという意味でしょうか?(フレキシブルグリッドで、データ編集はしない) それでしたら、Dynasetを入れている変数にNothingをセットすればよいです。oo4oのDynasetはCloseする必要はありません。(してもかまいませんが、何もしません) 最後に Set objDynaset=Nothing 'objDynasetは、Dynasetを参照している変数 としてください。

tariran
質問者

お礼

こんばんわ。。。 できました~~~~。ありがとうございました。 うれしい~~。

関連するQ&A

  • データ型について(oo4o)

    OraSession型ってバージョンによって 使えたり使えなかったりするんですか? 例えば下記のように記述してあるプログラムを Public OraSession As OraSession 'オラクルセッション用変数名 Oracle8i8.1.5では大丈夫だったのに、Oracle8i8.1.7にしたら Object型にしないと駄目だったんです。 OraSessionというデータ型は避けたほうがいいのでしょうか。 ちなみにVB5.0のプログラムをVB6.0でコンパイルしようと して起きた問題です。 VBとoo4oのバージョンの問題でもあるんでしょうか。

  • oo4oでデータベース接続

    VBでoo4oを使ってデータベースに接続、 コンボボックスでテーブル名を指定してコマンドボタンを押すとフレキシブルグリッドに選択されたテーブルの内容を表示させるというプログラムを作っているのですが… ・どうやってコンボボックスに全テーブル名を入れればいいのか ・テーブルの内容をフレキシブルグリッドに表示させるにはどういう風に記述すればいいのか この二点がわかりません。 教えていただけないでしょうか。

  • oo4o+ACCESS(VBA)で出来ますか?

    VB6とORACLE9i(oo4o)で開発しているものがあります。 これをAccess(VBAとoo4oを使用して)でも同じように「Dynaset」などを使用してOracleのデータを加工することは可能でしょうか? また、VBでは、一覧を出したいときは、SPREADなどを使用して開発しておりますが、Accessを使用した場合同様なことは出来るのでしょうか? 可能な場合Accessでは、モジュールから直接フォーム上にデータを表示することは、できますでしょうか?一度テーブルなどに落としてからという手間が必要になるのですか?どうぞ、宜しくお願い致します。

  • VB2005 DataGrdViewで、SQL文記述

    VB6からVB2005に切り替える作業をしています。 DataGridViewにMDBファイルの中身を表示させることは出来ました。 DataSet,BindingSourceを用いています。 コードの記述で、SQLの文章を変更させたいのです。 WHERE文の記述を変えたりしたいのですが。 DataSourceにSQL文を記入することが出来ません。 DataSourceには記述できないのでしょうか? それとも、根本的に間違っているのでしょうか。 よろしくお願いいたします。

  • VB6 + OO4O プロシージャの実行&複数行を受け取る方法

    VB6 + OO4O プロシージャの実行&複数行を受け取る方法 現在、VB6でOracleデータベースを操作しようと試みている最中で、 OO4Oで接続しています。 (表現誤っているかもしれません。。。) Oracleは今回初めてで、今まではSQLserverだったのですが、 SQLserverで、  1.ストアドを実行(パラメータあり)  2.レコードセット(複数行)を受け取る  3.ループで全件処理   ・・・ というような処理をしていました。 たとえば、あるテーブルの、ある条件に一致したレコード(複数あり)を全件取得 など。 「引数を渡してストアドプロシージャを実行し、複数行を結果として受け取る」ということがしたく、 Oracleでどのように実現させるかを調べてみたのですが、 「SQL文を記述し、受け取る」  例)strSQL = "select * from tbl"    Set OraDynaset = OraDatabase.CreateDynaset(strSQL, 0) というようなサンプルしか見つけられませんでした。 where句で条件を記述すれば同じなのかもしれませんが、 そういったこまごました記述をストアドプロシージャに記載しておき、 呼び出す際はパラメータだけ指定する、ということを想定しています。 ストアドを実行するサンプルは複数見つけたのですが、戻り値が1つのみか、戻り値なしのもので、 複数行を結果として受け取るようなサンプルが見あたりませんでした。 ストアド(PL/SQL)も作成してみたのですが、 単純に  select * from TBL; とするとエラーで、  select * BULK COLLECT INTO vTBl from TBL;  for i in 1 .. vTBl.count loop   -- 全レコードの項目「name」を表示する。   dbms_output.put_line(vTBl(i).name);  end loop; というように1件1件処理させていく方法しか見つけれませんでした。 Oracleのストアドは、今までのSQLServerの考え方はいけないのでしょうか? 調べるとしたら、どのような単語で調べたらよろしいでしょうか? 「VB6」「oo4o」「複数行」「プロシージャ」など、いろいろ努力はしたつもりなのですが。。。 ご指導よろしくお願いいたします。

  • VB6.0とスプレッドシート

    VB6.0とoracleを使用してスプレッドシートにDBのデータを表示しようとしているのですが、スプレッドシートを扱ったことがないためわかりません。 詳しく説明等載っているサイトご存じないでしょうか。

  • VB2005でINSERT文が。。。

    こんにちわ、VB2005初心者でいつもお世話になってます。 単純なINSERT文「コンマ、')'、または有効な式の継続文字が必要です」のエラーです。記述のどこが間違いなのかご指摘いただけますでしょうか。 DataGridViewにAテーブル(MDB、5フィールド)データを表示して新規入力されたデータ(行)をAテーブルに追加しようとしています。これはデータソース追加でのクエリーではなくPG内に記述しています。 「values("& dTbl.Rows(i)(0)","」の「","」がエラーとなっています。 If dTbl.Rows(i).RowState = DataRowState.Added Then Try dCom = New OleDb.OleDbCommand( _ "INSERT INTO Aテーブル values("& dTbl.Rows(i)(0)","& dTbl.Rows(i)(1)"," _ & dTbl.Rows(i)(2)"," & dTbl.Row(i)(3)"," & dTbl"." & Row(i)(4)", cn) dCom.ExecuteNonQuery() cn.Close() MsgBox(dCom) MessageBox.Show("追加しました。", "通知") Catch ex As Exception cn.Close() MessageBox.Show(ex.Message) End Try End If よろしくお願いいたします。

  • VB,SQL文のWHERE句について

    お世話になります。 エクセルVBにて、ACCESSのテーブルのデータを SQL分にてエクセルシートに書き出そうとしているの ですが、WHERE句の記述方法がおかしいのかエラーになっ てしまいます。(下記の「A9999」(データ型はテキスト 型)のところでエラーになります。 どの様な記述をすれば宜しいのでしょうか。 ご教授頂きたくよろしくお願いします。     記 ・記述内容  mySQL = "SELECT 出荷日, 品番, ロケーション, SUM(出荷量) AS 出荷量の合計"  mySQL = mySQL & " FROM 出荷データTMP"  mySQL = mySQL & " WHERE (((ロケーション) <> "A9999"))"  mySQL = mySQL & " GROUP BY 品番, ロケーション, 出荷量;"  Set rs = db.OpenRecordset(mySQL, dbOpenSnapshot)

  • ACCESS、EXCELの限界?

    ACCESS、EXCELで表示できる列数の限界について教えて下さい。 VBからの操作で、Oracleのテーブルの内容をACCESSで表示する仕組みを考えています。 Oracleのテーブルの列数が350近くもあり、ACCESSで表示することができません。CSVで出力したとしても、Excelで表示できません。どちらも255以上の列は表示できないようでした(256列以上は途切れて表示される)。 となると、Oracleのテーブルの内容をVBのグリッドに表示するしか方法はないでしょうか? もしそれしか方法が無いようであれば、グリッドに表示するか、ビューか何かを使用して表示列を絞り込む(これは最終手段にしたいです)かどちらかにしなければなりません。 一番いいのは、そのままACCESSに表示することなんですが。テキストで延々と出力するだけでは、データの編集がやりにくいので困っています。 よろしくお願いいたします。 開発環境は、Win2000(SP2)、Oracle8.1.6、VB6.0(SP3)、OFFICE2000(SR-1、SP2)です。

  • SQL文の書き方について

    SQL文の書き方について教えてください。 VBでSELECT分を書く場合、表示項目の間に空白(スペース)を入れて書きますが、これってレスポンスに影響が有りますか? 例 SELECT A,       B,       C FROM TBL という具合に記述します。 自分の経験上だと、レスポンスには影響がでないと思いますがどうなんでしょうか・