有关TQuery的查询与插入的问题,有些头痛!

wolf416 2001-09-11 02:24:37
用TQuery,TDataSource和TDBGrid,通过SQL将所查询的记录放在TDBGrid中,另外也通过SQL将记录插入表中,但插入所用的表与查询所用的表是相同的表。
但在不断有记录插入的时候,界面不断地闪烁,有时也出现违例,不知应该怎么办?
查询和插入的代码如下:
void __fastcall TfrmLog::ButtonQueryClick(TObject *Sender)
{
try{
AnsiString s;
AnsiString strQuery;
AnsiString strUser;
AnsiString strType;
AnsiString strSortName;
AnsiString strSortType;
strSortName=ComboBoxSort->Text;
if(RadioButtonASC->Checked)
strSortType="ASC";
else
strSortType="DESC";

if(ComboBoxUser->Text=="All User")
strUser="%";
else strUser=ComboBoxUser->Text;
if(ComboBoxType->Text=="All Type")
strType="%";
else strType=ComboBoxType->Text;

s= "where OperateTime>'"+Edit1->Text+"'" +" And OperateTime <'"+Edit2->Text+"'";
s+=" and UserName like '"+strUser+"'";
s+=" and Type like '"+strType+"'";
strDeleteCondition=s;
s+=" Order by "+strSortName;
s+=" "+strSortType;
strQueryCondition=s;
strQuery="select * from logs "+strQueryCondition;
LogQuery->Close();
LogQuery->SQL->Clear();
LogQuery->SQL->Add(strQuery);
LogQuery->Open();
}
catch(...)
{
ShowMessage("Query DB failed!");
}
}

void __fastcall TfrmLog::InsertLogToDB(PLOGRECORD plr)
{

try{
LogQuery->Close();
LogQuery->SQL->Clear();
LogQuery->SQL->Add("Insert into logs(UserName,Type,Target,Operation) ");
LogQuery->SQL->Add(" values(:UserName,:Type,:Target,:Operation)");
LogQuery->ParamByName("UserName")->AsString=plr->strUser;
LogQuery->ParamByName("Type")->AsString=plr->strType;
LogQuery->ParamByName("Target")->AsString=plr->strTarget;
LogQuery->ParamByName("Operation")->AsString=plr->strOperation;
if(!LogQuery->Prepared)
LogQuery->Prepare();
LogQuery->ExecSQL();

}
catch(...)
{

ShowMessage("Insert a record to DB failed!");
}

}
...全文
143 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyb_45 2001-09-12
  • 打赏
  • 举报
回复
两个TQuery,(一个插入,一个查询)
一个执行插入成功后,将查询的TQuery进行一句Open();即可。(记住,只有一句Open();)。
我在操作数据库(主要是ORACLE)上有相当长一段时间了,欢迎交流。
wang_yb@chinese.com
wolf416 2001-09-11
  • 打赏
  • 举报
回复
我用两个TQuery来分别完成插入与查询,也有问题
wjzhuang 2001-09-11
  • 打赏
  • 举报
回复
程序没错.
但是为何要把查询和插入的操作做在同一个界面上呢?

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧