ADOQuery.post与触发器问题

问题:

我的触发器是可以用的,在SQL查询分析器里完全正常,
但我用adoquery.post来提交新增就会出错,表面出错但其实后台数据已经更新了,


 解决办法:

你的情况我以前遇到过,是由Delphi ADO的一个小小的bug引起的, 解决办法:
CREATE TRIGGER ..... AS
BEGIN
  SET NOCOUNT ON
  ..................
  ...................
  SET NOCOUNT OFF
END

附:当 SET NOCOUNT 为 ON 时,不返回计数(表示受 Transact-SQL 语句影响的行数)。当 SET NOCOUNT 为 OFF 时,返回计数。

如果存储过程中包含的一些语句并不返回许多实际的数据,则该设置由于大量减少了网络流量,因此可显著提高性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ListView 是一个常见的控件,可用于显示数据。ADOQuery 是 C++ Builder 中用于访问数据库的组件。下面是一个简单的例子,展示了如何将 ListView 与 ADOQuery 配合使用。 首先,需要在 C++ Builder 中创建一个 ListView 和一个 ADOConnection 组件。ADOConnection 组件用于连接数据库。在 ADOConnection 的属性面板中设置 ConnectionString 属性,指定连接字符串,例如: ``` Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyDatabase.mdb;Persist Security Info=False ``` 然后,在 Form 的 OnCreate 事件中,使用以下代码连接数据库: ```cpp ADOConnection1->Connected = true; ``` 接下来,在 Form 的 OnShow 事件中,使用以下代码查询数据: ```cpp ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("SELECT * FROM MyTable"); ADOQuery1->Open(); ``` 最后,在 ADOQuery 的 AfterOpen 事件中,使用以下代码将查询结果显示在 ListView 中: ```cpp ListView1->Clear(); ListView1->Columns->Clear(); for (int i = 0; i < ADOQuery1->Fields->Count; i++) { TListColumn *col = ListView1->Columns->Add(); col->Caption = ADOQuery1->Fields->Fields[i]->FieldName; col->Width = 100; } while (!ADOQuery1->Eof) { TListItem *item = ListView1->Items->Add(); for (int i = 0; i < ADOQuery1->Fields->Count; i++) { item->Caption = ADOQuery1->Fields->Fields[i]->AsString; } ADOQuery1->Next(); } ``` 这里的代码将查询结果的每一行显示为 ListView 的一个 ListItem,每一列显示为 ListView 的一个 Column。这个例子仅供参考,具体实现可能需要根据实际情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值