過去の桐井戸端BBS (桐ver.8)
19689 イベントで外部DB接続をしたら選択画面が現れるがこれを現れないようにしたい UG2 2003/03/31-20:01
現在8.7を使用しております。

イベントで外部接続で困っております。

*やりたいこと
イベント使用
外部DB接続後、何も現れず自動的に書き出し。

*困っていること
外部DB接続後、選択画面が現れる。
選択を押すと、書き出しされる。
(選択が現れず、書き出ししたい。)

*イベント内容
外部DB 接続,ODBC = "ABC",ユーザ名 = "aaa",パスワード = "aaa",終了状態 = &OK
書き出し 外部DB, 条件名="ABC",終了状態 = &OK

お手数かけますが、よろしくお願い申し上げます。

P.S.
接続ハンドル = &hODBCとはどういったことでしょうか?
意味が分からないため、イベントから削除してしまいました。
また、この変数型は何でしょうか? (長整数 etc)


19690 Re:イベント 外部DB 書き出し うにん 2003/03/31-21:13
記事番号19689へのコメント
>現在8.7を使用しております。

9のヘルプには「引継ぎ=する」にしないと接続画面が出ると書いてあります。
8.7では無理かもしれません。

>書き出し 外部DB, 条件名="ABC",終了状態 = &OK

9には「書き出し 外部DB」のヘルプがありません。(^^;
しかし、接続コマンドで取得したハンドルを使う場所がないと無意味なので、
書き出しコマンドに「接続ハンドル=&変数」というオプションがありそうなものですよね。

19691 Re:イベント 外部DB 書き出し hidetake 2003/03/31-22:08
記事番号19690へのコメント
うにんさんの書かれているとおり,「書き出し 外部DB 条件名」では,
現在接続している外部DB のうち,どの接続に対し書き出しを行うのか! って
言う指定が無いので接続が出てしまうのは仕方ないようですね・・・
桐9 では,取り敢えず,現在の接続を最優先させる「引継ぎ=しない|する」と言う
オプションが追加されているので,選択画面を出さなくする方法も出来るようになったようです。

もし,一度書き出した内容がそのまま残っており,毎回書き出すテーブル構造が一緒だったら,
外部DB で全件抽出し桐側で全削除して桐の表を読み込むと言う方法もあるにはありますが,
桐側で実表の更新ができるテーブル構造になっていないといけませんね!
あるいは,面倒だけれど,外部アプリ(WSH)に頼って,テーブルデータの削除や
新規作成までを行って,桐で外部DB を開いて,それに読み込むという方法もあるにはあります。
でも,それぐらいするのでしたら,桐9 にアップされた方が良いと思います。
それに,外部DB はあまり使われていない事もあるでしょうが,
いろいろ変な動きをする(エラーが発生する)場面もありますので,
その意味でも桐9 の方が改善されている部分もあるかと思います。

あと,変数についてですが,&hODBC や &hWnd のように前に h がついているのは型が「ハンドル型」と言うのを表すようです。
でも,h がついていても言語によっては「ハンドル型」なんて型のない言語もありますが,
その場合も長整数等で使用する時でも,h 付きで使われている場面も多いようです。
桐の場合は,整数でも大丈夫だと思いますが,一般的には長整数を使うのだろうと思います。


蛇足
私の場合,次のような VBS を作っておいて,DSN と SQLQuery をコマンドラインで
SQL サーバに投げかけて,テーブルを削除したり,VACUUM をかける事もあります。 (^_^ゞ

Dim arg
Set arg = WScript.Arguments
If Arg.Count < 2 Then
WScript.Quit
End If
Dim obj,rs
dsn=arg(0)
sql=arg(1)
Set arg = Nothing
Set obj = Wscript.CreateObject("ADODB.Connection")
obj.Open dsn
SQLQuery = sql
rs = obj.Execute(SQLQuery)
Set obj = Nothing
WScript.Quit


19695 ありがとうございました UG2 2003/04/01-20:59
記事番号19691へのコメント
ありがとうございました。

VER9で使用することにします。

戻る