【发布时间】:2013-04-17 12:32:19
【问题描述】:
我将 Adoquery 与 Postgres 数据库一起使用。 当我执行 UPDATE 或 INSERT 查询时,ExecSql 或 OPEN 返回受影响记录的数量,但始终为 -1。 我使用最新版本的 psqlODBC:09.01.0200。
代码:
Adoquery1.close;
Adoquery1.SQL.Clear;
query := 'insert into testtabel (nummer, naam) values (3,''Barnsten'') ';
Adoquery1.SQL.Add(query ) ;
result := Adoquery1.ExecSql;
结果是-1
【问题讨论】:
-
为什么不使用通常的
Insert和Post机制? -
可能后面没有DBAware控件?
-
如果在调用
Adoquery1.ExecSQL;之后添加AdoQuery1.Close; AdoQuery1.SQL.Text :=SELECT nummer, naam FROM testtabel where nummer = 3 and naam = ''Barnsten'' 会发生什么); AdoQuery1.打开; ShowMessage('Result: ' + IntToStr(ADOQuery1.RowCount));? Do you get1? If not, theINSERT` 失败,你从RowsAffected得到的值是正确的。Open不使用RowsAffected;它使用RowCount代替 IIRC。 -
testtabel有没有被分区?