こんにちは。delphiの勉強を始めたばかりのものです。
tqueryを使ってDB更新をしたいのですが、以下のとおりです。
query.sql.clear();
query.sql.add('xxxxxxxxxxxxxx');
query.sql.ExecSQL;
sql文は問題ないのですが、これを実行すると落ちて、反応がありません。
どこが問題なのでしょうか?
Delphiのバージョンは何でしょう?
データベースは何を使用していますか(そのバージョンは)?
SQL文に問題が無いことはどうやって確認しましたか?
最後の行はコンパイルできます?
query.ExecSQLではないですか?
「落ちる」とは具体的にどうなりますか?
エラーメッセージなどは表示されませんか?
queryのDatabaseNameプロパティには何を設定していますか?
エリアスって分かりますか?
質問に質問で返すのは失礼ですが、これらを聞かないことには
どこが問題かと聞かれても答えようがないので。
Questさん
すいません。大雑把な質問で失礼しました。
>Delphiのバージョンは何でしょう?
Delphiは2006です。
>データベースは何を使用していますか(そのバージョンは)?
DBはオラクルの10Gです。
>SQL文に問題が無いことはどうやって確認しましたか?
SQLはオブジェクトブラウザで確かめたので問題ないです。
>最後の行はコンパイルできます?
コンパイルはできます。
>「落ちる」とは具体的にどうなりますか?
>エラーメッセージなどは表示されませんか?
落ちるというのは何の反応もなく砂時計になっていることです。
エラーメッセージはないです。
>queryのDatabaseNameプロパティには何を設定していますか?
Databasenameの設定はしています。
エリアスも設定済みです。
>query.ExecSQLではないですか?
query.ExecSQLです。失礼しました。
そのSQLは時間が掛かるものですか?
データベースをあらかじめオープンしておいたらどうでしょう?
オラクルは同じPCで動いてますか?他のPCへリモート接続ですか?
SQLが単純なものなら、DBへの接続に時間が掛かっている気がしますが。
コードで明示的にDBのオープンを書いて、どの処理で時間が掛かる(止まる)のか
切り分けてみてはいかがでしょう。
解決しました。コードで明示的にDBをオープンしたら動きました。
ツイート | ![]() |