はじめまして。2か月前にプログラミンの勉強を始めたものです。
SQLPlusのなかにあるテーブルにInsert,Delete,Updateしたいのですが、できません。
現在Loadのみが出来ている状態です。
ちなみに
InsertSQL = 'Insert Into ATABLE ' +
'(ID, DAY, TIME) ' +
'Values(:ID, :DAY, :TIME)';
Procedure TForm.InsertData(ID : Integer; Day, Time : string);
begin
PutSQL(InserSQL, [ID, Day, Time]);
end;
SQLQuery.Open;
SQLQuery.Insert;
という感じで書いているのですが、Openすらできません。
どなたか、初心者でも分かるように、説明していただけませんか?
すみません、補足ですが、
Delphiの型からSQLPlus用の型に移す必要がありますか?
Loadするときは、
「AsInteger」や、「AsString」のようなものを記載したのですが、
DelphiからSQLplusにデータを送るときは、どのように変換すればいいのでしょうか?
初心者な質問ばかりで、お恥ずかしいですが、
アドバイスをいただけますか?
DatabaseはOracleをお使いのようですね。
SQLPlusはOracleのToolだと思います。
接続は何を使っているのでしょうか?
これはうまくいっているのでしょうか?
もし、BDEを使っていて、Oracleが8.1以上だと、対応していませんので、
DBExpressを使うことをお勧めします。
もう少しバージョンやコンポーネントをお知らせください。
接続方法も書いていただくと、レスポンスもしやすいと思います。
HOtaさん
さっそくお返事をいただいて、ありがとうございます。
全くの初心者で、何をお伝えしたらいいかも分からず、すみませんでした。
DBExpressとOracle10.2を使用しています。
SQLQuery(DBExpressの)
実際にインサートする場合のシンタックス(?)を教えていただきたいです。
具体的にどのようなコードになるのでしょうか?
SQLconnectionというコンポーネントを使ってOracleデータベースに接続しています。
SQLDataSetコンポーネントをフォーム上においてを置いた途端に、LOADができるようになったのですが、
実際にどのように使っていいのか(InsertやDeleteやUpdate)をするにあたり、
どのように使用するのかも分かっていない状態です。
上記の情報で、十分に状況がつたえられているか、自信がありませんが、
ご指導の程していただければ幸いです。
ネット等で調べては見たものの、余りにも知識がなく、うまく実行できませんでしたので・・・。
いつもこのサイトを参考にしています。ありがとうございます。
TSQLDataSet は単方向データセットですから、読み込む場合は、
TSQLDataSetのCommandTextに
Select Field1,Field2,Field3 From Table1 where 条件
でActive := true;
でDatasetを取り出せます。
OracleとDelphiの間の方は、String型の場合は、AsString、
整数型は、AsInteger等で取り出します。
このあたりは調べてください。
Delphiからデーターベースを更新するには、TSQLQueryを使うと、SQLにInsert Into ATABLE (ID, DAY, TIME) Values(:ID, :DAY, :TIME)
とすると、
Procedure TForm.InsertData(ID : Integer; Day, Time : string);
begin
with SQLQuery1 do
begin
ParamByName('ID').AsInteger := ID; {パラメターに値を入れる}
ParamByName('DAY').AsString := DAY; {ここのFieldの型が文字列の場合}
ParamByName('TIME').AsString := Time;
ExecSQL; {更新実行}
end;
end;
で更新できると思います。
HOtaさん
わざわざご親切に教えていただき、ありがとうございました。
教えていただいた通りにコーディングして、
DBにアクセスできるようになりました。
またご指導よろしくお願いします。
ありがとうございます。
ツイート | ![]() |