OracleとVBをoo4oでつなげた時
■ このスレッドは過去ログ倉庫に格納されています
0001みいな
NGNG私はOracleとVBをoo4oでつなげているのですが、
(なのでもちろん、OracleのDBにアクセスするための
ログイン画面などもつくっています。)
VB6を起動させて、その中で「実行」をする分には問題ない
のですが、なぜかEXEファイルを作ってコンパイラにて
処理をさせようとすると、「DBのその列は見つからない」って
エラーが生じます。EXEファイルだとうまくDBにアクセス
できてないってことだと思いますが、なんか
対処方法ってありますか?
それとも、そのログインのプログラムを貼り付けたほうが
いいですかね?
一応、ただSelectを行う簡単なプログラムでもその症状が
でたので、もし知ってる方は教えてください。
0002デフォルトの名無しさん
NGNG0003みいな
NGNGほかのマシンでも一緒でした。
というか、ただのセレクト文だと大丈夫みたいですが、
以下のようにプログラムを書くと、項目名を持ってこれなくなる
みたいです。(「顧客ID」はみつかりませんとのエラーがでます。)
Private Sub テストsql_Crick()
Dim strSQL Aa string
Dim objKubun As object
strSQL = In_data.Text
Set objKubun = OraDatabase.DbCreateDynaset(strSQL, 0&)
Out_data = (objKubun("MAX(顧客ID)"))
Exit Sub
ってなってます。
画面上では
SELECT MAX(顧客ID)FROM 顧客DB で検索をかける単純なプログラムです。
テーブルの構造としては、顧客DBと製品DBの2つのテーブルが、
顧客IDという項目名をキーにしてつながっているといった状態です。
すみません、説明がへたくそで。
0004デフォルトの名無しさん
NGNGネタ決定
0005デフォルトの名無しさん
NGNG最近のOracle(とそれに接続するライブラリなどなど)は、
日本語テーブル名を問題なく処理できるようになったのか?
去年(藁)くらいまでは鬼門だという話になっていたはずだが…
0006デフォルトの名無しさん
NGNGそうじゃなくて
>SELECT MAX(顧客ID)FROM 顧客DB
カラム名は"MAX(顧客ID)"じゃねーだろって事。
oo4oも関係ないし単発スレ立てるのやめれ
0007デフォルトの名無しさん
NGNGOut_data = (objKubun("MAX(顧客ID)"))
if objKubun.EOF = False then
out_data=objKubun.Fields("MAX(顧客ID)").value
end if
とかじゃないの?普通。
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGありえないよ。まったく。
0011デフォルトの名無しさん
NGNGホントは各ソフトのバージョンを書いて欲しかったんだけどね。
>SELECT MAX(顧客ID)FROM 顧客DB で検索をかける単純なプログラムです。
SELECT MAX("顧客ID")FROM "顧客DB"
というSQLにしないと通らないかも。
でも、一番確実なのは、マルチバイト文字をカラム名やオブジェクト名に使わないってことなんだが。
パッチがあるかはわからない(知ってても書けないんだけど)から、正規サポートに聞いてくれ。
0012デフォルトの名無しさん
NGNGできるよ。
dynaset.Fields("hoge").Valueよりちょっと速いんじゃなかったかな。
VBMLだったかPCDNだったかで実験した人がいた。
0013デフォルトの名無しさん
NGNGの方がよいかな。
0014デフォルトの名無しさん
NGNGしらなかった。すげー
だとすると、>>1のソースは基本はなってないのに
高度なテクニックがまじってるんだ。
0015デフォルトの名無しさん
NGNGだけど複数回参照する時は最初にfieldオブジェクトに代入してから
参照するのが一番速い。
0016デフォルトの名無しさん
NGNGまじっすか。さらにすげー
勉強になります。
いったい、最高速の出るソースというのはどんな感じになるのかな。
サンプルとかあったら欲しいなー
0017デフォルトの名無しさん
NGNGこのスレッドたどってくれい
http://dev.sfdata.ne.jp/VB/htdocs/msg04548.html
0018デフォルトの名無しさん
NGNGさんきゅーさー
よくわかったっす。
0019デフォルトの名無しさん
NGNG0020みいな
NGNGいろいろ頂いた結果から1つのことが分かりました。
それは、「EXE形式にして動かすと、項目が文字化けして”列名がない”」
って言われるからです・・・・
やっぱり項目は日本語にすべきではなかったんでしょうか?
それとも、なにかその文字化けを治す方法ってあるんでしょうか?
使っているソフトですが、VB6のEnterpriseと、Oracle8iを使用しています。
項目名を作り直すとしたら、今までのデータ、全部消さないといけないですよね・・・・
0021デフォルトの名無しさん
NGNG0022デフォルトの名無しさん
NGNGスキーマが全く同じだけど、列名が1バイトのVIEWを作って参照
してみれば?
■ このスレッドは過去ログ倉庫に格納されています