こんにちはtuskiです。
Delphi5を使用しています。
Queryを使用して、SQLのSELECTで取得した値を変数へ格納したいのですが、
どのようにしたらよいのでしょうか?
変数Str: String;
Str:=Query1.Open;
上記のようにするとエラーになってしまいます。
もしよろしければ教えて頂きたいのですが。
よろしくお願いします。
TQueryには、Fieldsプロパティがあります。
TFieldsには、TFieldクラスの配列があります。
このFields[インデックス]に、個々のデータが入っています。
TFieldクラスをヘルプで調べれば、TStringFieldや、TFloatFieldなどがあることが判ります。
文字列だけなら、TFieldのAsStringで取得できます。
詳しいことは、ヘルプで調べてみてください。
Openでどのようなエラーが出るんでしょうか。
それが分からないと、コメントしようがありません。SQLの記述間違いかもしれませんし、データベースがロックされているのかもしれません。
Openできれば、Nextで次のレコードを参照できます。
tsukiです。
お返事ありがとうございます。
記述がきちんとできてなくすみません。
Str:=Query1.Open;の時のエラーは以下の通りです。
[エラー] Test.pas(95): 'String' と 'procedure, untyped pointer or untyped parameter' には互換性がありません
SQLは
select Sakana from Sea where Sakana=:sqlstr;
上記の通りです。
もし、にしのさんが思っていたものと違えば・・すみません。
これからは気を付けます。
なるほど、確かに見ればエラーが起きる記述でした。
Query1.Openは、プロシージャなので、値は返しません。
この場合は、Query1.ParamByName('sqlstr')に値がセットされているという前提で、
Query1.Open; // SQLを実行(SELECT)
Str := Query1.Fields[0].AsString;
こんな感じになります。
エラー処理や例外処理は別途用意してください。
tsukiです。
ありがとうございます。
無事解決しました。
これからは質問の記述に気を付けますので
よろしくお願いします。
その前に、どうしてハンドルネームを変えてまでして
Cyclamen BBSにマルチポストしてるのかが分からない。
コピペで。
申し訳ありません。
すみませんでした。これからは気を付けます。
ツイート | ![]() |