有着灿烂星星的老大们,求您们帮忙看一下吧。

Angelic 2003-07-07 01:49:49
http://expert.csdn.net/Expert/topic/1996/1996832.xml?temp=.1835291
查询就可以,为什么不能让我写数据库啊。ADOQuery怎么可以这样?
...全文
49 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yesry 2003-07-09
  • 打赏
  • 举报
回复
可以但是select是为了取得其值,并在以后使用,如果用在update之前就得close,那么select出来的值得存放在其他的方,很是不方便,所以,交替使用select的值进行update,还是使用两个ADOQuery比较妥当。
Angelic 2003-07-07
  • 打赏
  • 举报
回复
to yesry():
您好。
很感谢你的帮助,谢谢了。你做的是对的。
我的SQL中语句写错了(其中有一字段类型是money,我却认为是int),还有就是不能只用一个ADOQuery进行查询和更新,否则就出错说写了无效内存地址。不过还是要用初始化的。

我是这样用的,我用ADOQuery1先查询一张表,取得这张表符合条件的一行。然后再修改这张的
某个字段值。为什么update的时候不能再用ADOQuery1了,我只能重新拉了一个ADOQuery2出来进行update,否则就出错说写了无效内存地址。 请问可以不可以只用一个ADOQuery控件即能做到select又能做到update?
dengjunjian 2003-07-07
  • 打赏
  • 举报
回复
up
FlySky01 2003-07-07
  • 打赏
  • 举报
回复
up
yesry 2003-07-07
  • 打赏
  • 举报
回复
否则这样?
也没有什么错啊?
static int i=0;
void __fastcall TForm1::IdTCPServer1Execute(TIdPeerThread *AThread)
{
Form1->ADOQuery1->SQL->Text="insert into Customers(CustomerID,CompanyName)values("
+AnsiString(i)+","+i+")";
Form1->ADOQuery1->ExecSQL();
i++;
}
//---------------------------------------------------------------------------
yesry 2003-07-07
  • 打赏
  • 举报
回复
是吗?
这样行不行?线程,不用Synchronize,也能运行很好啊。


//---------------------------------------------------------------------------

#ifndef Unit1H
#define Unit1H
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ADODB.hpp>
#include <Buttons.hpp>
#include <DB.hpp>
//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published: // IDE-managed Components
TADOQuery *ADOQuery1;
TADOConnection *ADOConnection1;
TBitBtn *BitBtn1;
TBitBtn *BitBtn2;
void __fastcall BitBtn1Click(TObject *Sender);
void __fastcall BitBtn2Click(TObject *Sender);
private: // User declarations
public: // User declarations
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
class my : public TThread
{
private:
protected:
void __fastcall Execute();
public:
__fastcall my(bool CreateSuspended);
};
//---------------------------------------------------------------------------
#endif



//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
__fastcall my::my(bool CreateSuspended)
: TThread(CreateSuspended)
{
FreeOnTerminate=true;
}
//---------------------------------------------------------------------------
void __fastcall my::Execute()
{
int i=0;
while(!Terminated)
{
Form1->ADOQuery1->SQL->Text="insert into Customers(CustomerID,CompanyName)values("
+AnsiString(i)+","+i+")";
Form1->ADOQuery1->ExecSQL();
i++;
}
}
//---------------------------------------------------------------------------
my *m;
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
m=new my(false);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
m->Terminate();
}
//---------------------------------------------------------------------------

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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