如何用delphi执行SQL语句,创建触发器,我曾用ADOCommond,但他无法识别‘go’

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用delphi执行SQL语句,创建触发器,我曾用ADOCommond,但他无法识别‘go’相关的知识,希望对你有一定的参考价值。

如何在delphi中执行如下代码
if exists(select name from sysobjects where name='tri_delete')
begin
drop trigger tri_delete
end
go
create trigger tri_delete
on PatientHistory
for delete
as
declare @PatientName varchar(20)
select @PatientName=PatientName from deleted
if @PatientName = 'test'
begin
raiserror('错误',16,8)
rollback tran
end
谢谢~没有财富了,不好意思,求大神帮忙!

参考技术A 1:ADO组件属性:ParamCheck := False;
2:上面的语句逐行加载到组件的SQL语句属性里,如果是“GO”,则不加载,执行。追问

可不可以使用DLL实现触发器?在delphi主窗体中调用呢?

追答

什么意思?
SQL触发你的dll?

参考技术B 可以使用adoquery来执行,不用go
SaveSql:='insert into table(fields ...) values (fieldvalue....)';
ADOQ_Save.Close;
ADOQ_Save.SQL.Clear;
ADOQ_Save.SQL.Add(SaveSql);
ADOQ_Save.ExecSQL; 执行追问

如果不用go,那
if exists(select name from sysobjects where name='tri_delete')
begin
drop trigger tri_delete
end
这个处理怎么做啊?
还有
'CREATE TRIGGER' 必须是批查询中的第一条语句。
这些怎么处理,谢谢

追答

你是不是想查询数据库中一个表是否存在,如果存在就删除它呢。

参考技术C 这种只执行一次的,为何不在sqlserver里面做?
分开多个ado操作,使用事务追问

可不可以详细一点啊

本回答被提问者采纳

以上是关于如何用delphi执行SQL语句,创建触发器,我曾用ADOCommond,但他无法识别‘go’的主要内容,如果未能解决你的问题,请参考以下文章

如何用C#程序直接执行.sql文件里的SQL语句?急着用啊!新手求高手指点

请问高手:如何用SQL语句获得数据表中所有关键字段的名称?

delphi adodataset如何用如sql语句 增、删、改、查记录 类似于下面这样,但adodataset我不知道怎么弄

sql2000 如何用触发器实现级联删除

如何用参数控制执行不同的sql语句(在线等答案

如何用java语言中如何执行sql查询语句