掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
PostgresDB更新時のエラーを解決するには? (ID:40328)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
HOta様 返信ありがとうございます。 しかし、ツール上で直接そのSQLを発行すると OKなんで・・・。 一応、ソースのっけておきます。 なんか手がかりがあればいいのですが・・・。 開発環境 Windows2000 Delphi7 PostgresSQL8.4.2 「PgOleDb.dll」を利用 画面にButton1つとEditを2つです。 uses ADODB, ComObjを追加 procedure TForm1.Button1Click(Sender: TObject); var DBDataPassword: String; DBDataUserID: String; DBDataSource: String; DBDataLocation: String; DBExtendedProperties: String; str_ErMes: String; str_Result: String; AdoQuery1: TADOQuery; AdoConnection1:TAdoConnection; begin str_Result := ''; str_ErMes := ''; AdoConnection1 := TADOConnection.Create(nil); AdoQuery1 := TADOQuery.Create(nil); DBDataPassword := 'Password';//パスワード DBDataUserID := 'UserID';//ユーザーID DBDataSource := 'Source';//データソース DBDataLocation := 'Location'; DBExtendedProperties := '""';//フラグ try try AdoConnection1.Connected := False; AdoConnection1.Provider := 'PostgreSQL.1'; AdoConnection1.ConnectionString := AdoConnection1.ConnectionString + 'Password=' + DBDataPassword + ';'; AdoConnection1.ConnectionString := AdoConnection1.ConnectionString + 'User ID=' + DBDataUserID + ';'; AdoConnection1.ConnectionString := AdoConnection1.ConnectionString + 'Data Source=' + DBDataSource + ';'; AdoConnection1.ConnectionString := AdoConnection1.ConnectionString + 'Location=' + DBDataLocation + ';'; AdoConnection1.ConnectionString := AdoConnection1.ConnectionString + 'Extended Properties=' + DBExtendedProperties + ';'; AdoConnection1.LoginPrompt := False; AdoConnection1.ConnectionTimeout := 5; AdoConnection1.Connected := True; AdoQuery1.Connection := AdoConnection1; AdoQuery1.Close; AdoQuery1.SQL.Clear; AdoQuery1.SQL.Add('UPDATE [TABLE] SET [FIELD] = ''[Edit1のDATA]'''); AdoQuery1.SQL.Add('WHERE [KEY_FIELD1] = ''[KEY_DATA1]'''); AdoQuery1.SQL.Add('AND [KEY_FIELD2] = ''[KEY_DATA2]'''); AdoQuery1.SQL.Add('AND [KEY_FIELD3] = ''[Edit2のDATA]'''); AdoQuery1.ExecSQL; <----------------- ここでエラー発生! except on EO: EOleException do begin str_ErMes := '[' + EO.ClassName + '] ' + EO.Message; end; on E: Exception do begin str_ErMes := '[' + E.ClassName + '] ' + E.Message; end; end; finally AdoQuery1.Free; AdoConnection1.Free; end; if (str_ErMes = '') then begin end else begin ShowMessage(str_ErMes); end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.