社区
C++ Builder
帖子详情
ADOQuery1->ExecSQL()与ADOQuery1->Open()
petiteturbo
2005-06-10 02:16:52
哪位好心人给我讲讲ADOQuery1->ExecSQL()与ADOQuery1->Open()的具体区别啊???
...全文
313
11
打赏
收藏
ADOQuery1->ExecSQL()与ADOQuery1->Open()
哪位好心人给我讲讲ADOQuery1->ExecSQL()与ADOQuery1->Open()的具体区别啊???
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
weill
2005-06-11
打赏
举报
回复
唉呀呀呀……这种问题也要问啊……
用脚指头想想也明白吖……
petiteturbo
2005-06-11
打赏
举报
回复
谢谢大家!学习了
JXES智能生态系统
2005-06-10
打赏
举报
回复
ADOQuery1->ExecSQL()执行数据更新语句
insert
update
delete
ADOQuery1->Open()执行查询语句select
luobeyond
2005-06-10
打赏
举报
回复
sczyq的代码确实比较好
我也多了一点经验
我很高兴哦
第2次留言
发现留言比不留言要好
我发现你的代码改一下更加完善
你的代码
if (ADOQuery->SQL->Strings[0].SubString(1,6).UpperCase() == "SELECT")
这里可能会出现错误
把它改一下可能通用性更强
就是对前面空格的判断因为这样也是对的
" select * from......."
dddbryant
2005-06-10
打赏
举报
回复
同意楼上的
tsk
2005-06-10
打赏
举报
回复
返回结果集就是从数据库取到数据.暂存在缓存中,就把它当着暂存在ADOQuery中好了!!!
而不返回结果集,就是操作数据库,不读取数据,这样理解!
hunshihaichong
2005-06-10
打赏
举报
回复
To:luobeyond
我觉得你说的太简单了,虽然易懂
To: sunliwen780502
结果集是什么意思,我的SQL学得不好
谢谢
sunliwen780502
2005-06-10
打赏
举报
回复
ADOQuery1->ExecSQL()不返回结果集,主要是针对modify, insert,update, delete 等操作。
而ADOQuery1->Open(); 则返回届集,主要是执行查询操作。
sczyq
2005-06-10
打赏
举报
回复
关于三个通用通用的函数,其实没必要怎么复杂, ADOQuery->SQL 本身是TStrings 类型。
而从这里直接加入SQL语句,也更加容易读懂程序。主要是SQL语句出错的问题,因此,容错机制显得非常重要。
//---------------------------------------------------------------------------
bool __fastcall ExecSQLTry(TADOQuery *ADOQuery)
{
bool Succeeded = false;
if (ADOQuery->SQL->Count)
{
try
{
if (ADOQuery->SQL->Strings[0].SubString(1,6).UpperCase() == "SELECT")
ADOQuery->Open();
else ADOQuery->ExecSQL();
Succeeded = true;
}
catch ( Exception &E )
{
Succeeded = false;
RunTimeError(ADOQuery, E.Message // 异常处理函数,可用来显示或记录日志
+ "\n------------------------------\n"
+ ADOQuery->SQL->Text);
}
catch (...)
{
Succeeded = false;
RunTimeError(ADOQuery, ADOQuery->SQL->Text); // 出错处理
}
}
return Succeeded;
}
//---------------------------------------------------------------------------
luobeyond
2005-06-10
打赏
举报
回复
ADOQuery1->ExecSQL()执行数据更新语句
insert
update
delete
ADOQuery1->Open()执行查询语句select
luobeyond
2005-06-10
打赏
举报
回复
ADOQuery1->ExecSQL()执行数据更新语句
insert
update
delete
modify
上面所有的这些操作都是改变数据库的内容而不要返回结果
例如:
AnsiString sSql;
sSql = "insert into P_Contract_Tax values(1,'abc',3.7,"hello");
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add(sSql);
Query1->ExecSQL();
ADOQuery1->Open()执行查询语句select
例如:
Ansistring sSql;
sSql=”select * from stu.dbf”
Query1->Close();
Query1->SQL->Clear();
Query1->SQL->Add(sSql);
Query1->Open();
下面是三个通用通用的函数,你写好后直接调用就好了:
执行数据更新语句
void __fastcall ExecuteSql(TADOQuery *Que,AnsiString sSQL)
{
if (Que->Active)
Que->Active=false;
if (Que->Filter!=""){Que->Filter="";}
if (Que->Filtered){Que->Filtered=false;}
Que->SQL->Clear();
Que->SQL->Add(sSQL);
Que->ExecSQL();
}
//---------------------------------------------------------------------------
void __fastcall ExecuteSql(TADOQuery *Que,TStringList *sSQL)
{
if (Que->Active)
Que->Active=false;
if (Que->Filter!=""){Que->Filter="";}
if (Que->Filtered){Que->Filtered=false;}
Que->SQL->Clear();
Que->SQL->Assign(sSQL);
Que->ExecSQL();
}
//---------------------------------------------------------------------------
//执行数据查询语句
void __fastcall ResultSql(TADOQuery *Que,AnsiString sSQL)//返回数据集
{
if (Que->Active) {Que->Active=FALSE;}
if (Que->Filter!=""){Que->Filter="";}
if (Que->Filtered){Que->Filtered=false;}
Que->SQL->Clear();
Que->SQL->Add(sSQL);
Que->ExecSQL();
try
{
Que->Active=true;
}
catch(...)
{
return;
}
}
ADO
Query
连接数据库的查询、插入、删除、修改
- `
ADO
Query
.
Open
` 通常用于执行 SELECT 语句,而 `
ADO
Query
.
Exec
SQL
` 用于执行 DML(Data Manipulation Language)语句,如 INSERT、DELETE 和 UPDATE。 在 Delphi 开发中,理解
ADO
Query
组件的工作原理以及如何...
Delphi中的
ADO
query
用法
Exec
SQL
; end; 修改: With
ADO
Query
1 do begin Close;
SQL
.Clear;
SQL
.Add(' Update Table1 Set Field1=20,Field2=30 Where Field1=10 and Field2=20');
Exec
SQL
; end; 删除: With
ADO
Query
1 do begin ...
ADO
Query
使用方法
*
ADO
Query
.
Open
与
ADO
Query
.
Exec
SQL
有不同之处。
ADO
Query
.
Open
一般用在查询,select 时候;而
ADO
Query
.
Exec
SQL
用在 insert,delete,update 等。
ADO
Query
是 Delphi 中一个非常强大且灵活的组件,可以满足...
delphi
ADO
Query
3. **区别使用
ADO
Query
.
Open
和
ADO
Query
.
Exec
SQL
** - `
ADO
Query
.
Open
` 主要用于执行 SELECT 类型的查询。 - `
ADO
Query
.
Exec
SQL
` 用于执行 INSERT、DELETE、UPDATE 等非查询类型的
SQL
命令。 #### 四、数据类型...
Delphi_
ADO
Query
连接数据库的查询、插入、删除、修改
-
ADO
Query
可以与Delphi的其他数据感知组件(如DBGrid、DBNavigator等)绑定,实现数据的可视化操作和导航。 在实际应用中,确保对
ADO
Query
的正确使用和良好的错误处理机制,能够大大提高数据库操作的效率和程序的...
C++ Builder
13,871
社区成员
102,693
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章