我碰到一个这样的问题了,有两个窗体Tw_gxck,有memo1.
Tw_jsgs,窗体有ADOQUERY,DATASOURCE,
我想在实现的功能是想通过Tw_gxck的点击一个按钮从memo1.的文本值输入在窗体
w_jsgs的adoquery1中并在通过DBGID1中显示出来,我写了一端简单的代码,请帮我看一下了;谢谢!procedure Tw_gxck.Button1Click(Sender: TObject);
begin
w_jsgs.ADOQuery1.Close;
w_jsgs.adoquery1.SQL.Clear;
w_jsgs.ADOQuery1.SQL.Add('insert into jsgx(xmmc)values(memo1.text)');
w_jsgs.ADOQuery1.Open;
w_gxck.Free ;
end;
end.
Tw_jsgs,窗体有ADOQUERY,DATASOURCE,
我想在实现的功能是想通过Tw_gxck的点击一个按钮从memo1.的文本值输入在窗体
w_jsgs的adoquery1中并在通过DBGID1中显示出来,我写了一端简单的代码,请帮我看一下了;谢谢!procedure Tw_gxck.Button1Click(Sender: TObject);
begin
w_jsgs.ADOQuery1.Close;
w_jsgs.adoquery1.SQL.Clear;
w_jsgs.ADOQuery1.SQL.Add('insert into jsgx(xmmc)values(memo1.text)');
w_jsgs.ADOQuery1.Open;
w_gxck.Free ;
end;
end.
解决方案 »
- 急.delphi7支持mapxtreme2005吗???
- 我要做一个局域网内的监控程序,服务端发送命令,客户端能接受并执行服务端发送的命令!呵呵,并不是要搞什么破坏!
- 需要程序里加上通过网关发送短信的功能吗?
- 一个关于oracle和delphi的小问题,有分
- 問:Delphi程序員現在工資一般多少?
- 一個奇怪的問提
- 当程序读数据库时,怎么使光标变成漏斗状?
- 如何让自己的程序实现像任务栏一样的停靠在桌面上的效果?
- delphi与access数据库有哪几种方式连接数据库?
- 怎樣把DELPHI報表(*.QRP),轉換轉成Word或Execl格式文件
- 过不过四级?大妈大叔们给个意见
- 调用vc做的dll的时候出错,请问原因?
w_jsgs.adoquery1.SQL.Text :=
Format('insert into jsgx(xmmc)values(%s)', [QuotedStr(Memo1.Text)]);
w_jsgs.ADOQuery1.ExecSQL; //除select语句外,都要用ExecSQL来执行~~
上面有报错了无法插入空值,操作失败!
'insert into jsgx(id,xmmc)values('001',%s)
我的功能是想实现一个表的一个字段(xmmc)插入;
我应该怎样才能实现了,
查一下你的表定義...
是的,我在表里面已经查了,有Primary或Not NULL,但是我在w_jsgs里面了输入几个字段的值,我想在实现的功能是想通过Tw_gxck的点击一个按钮从memo1.的文本值输入在窗体w_jsgs的adoquery1中并在通过DBGID1中显示出来,我写了一端简单的代码,请帮我看一下了;谢谢!
procedure Tw_gxck.Button1Click(Sender: TObject);
begin
w_jsgs.ADOQuery1.Close;
w_jsgs.adoquery1.SQL.Text:=Format('insert into jsgx(gs)values(%s)',[QuotedStr(Memo1.Text)]);
w_jsgs.ADOQuery1.ExecSQL;
w_gxck.Free;
end;
end.
begin
DataModule1.ADOConnection1.Connected := true;
DataModule1.ADOQuery1.Connection := DataModule1.ADOConnection1; with DataModule1.ADOQuery1 do begin
SQL.Clear;
SQL.Add('insert into jsgx(jsgx,xmmc,de,gs) '); //SQL文
SQL.Add(' values(:jsgx_var,:xmmc_var,:de_var,:gs_var)'); Parameters.Clear;
Parameters.AddParameter.Name := 'jsgx_var'; //参数定義
Parameters.AddParameter.Name := 'xmmc_var';
Parameters.AddParameter.Name := 'de_var';
Parameters.AddParameter.Name := 'gs_var'; Parameters.ParamByName('jsgx_var').Value := Memo1.Lines.Strings[0]; //参数付値
Parameters.ParamByName('xmmc_var').Value := Memo1.Lines.Strings[1];
Parameters.ParamByName('de_var').Value := Memo1.Lines.Strings[2];
Parameters.ParamByName('gs_var').Value := Memo1.Lines.Strings[3]; ExecSQL; //執行
end;
end;(注:在memo1毎一行輸入一個項目値)
[Error] f_gxck.pasd(182): Undeclared identifier: 'Connection'还有对了一个字段(gs)是通过一个窗体memeo1输入插入,而不是全部插入,
,而其它字段是通过另一个窗体输入,
在ADOQuery1的属性中的Connection選定ADOConnection1
去除”DataModule1.ADOQuery1.Connection := DataModule1.ADOConnection1;”②二個窗体的内容可以集中在一起輸入。
在Tw_jsgs的Source中:
var
w_gxck: Tw_gxck; //引用Tw_gxck窗体(或按Alt+F11加入)implementation{$R *.dfm}③修正
Parameters.ParamByName('gs_var').Value := w_gxck.form1.Memo1.Lines.Strings[3];
?
begin
Data1.ADO_user.Connected := true;
ADOQuery1.Connection := data1.ADO_user;
with ADOQuery1 do begin
SQL.Clear;
SQL.Add('insert into jsgx(gs) '); //SQL文
SQL.Add(' values(:gs_var)');
Parameters.Clear;
Parameters.AddParameter.Name := 'gs_var';
Parameters.ParamByName('gs_var').Value := Memo1.Lines.Strings[0]; //参数付値
ExecSQL; //執行
end;
end;
就报错了,是不能插入NULL值:
那要先插入、然後再用'Update文'、不是用'Insert文'!update jsgx
set gs = :gs_var
where 条件(還有:君真可愛、看看databases書!)
procedure Tw_gxck.DBGrid1CellClick(Column: TColumn);
begin
if adoquery1.RecordCount >0 then
begin
Memo1.Lines.Strings[3];=trim(adoquery1.fieldbyname('bsf').asstring);
end;
end;
可是在MEMO1中不能显示值:是什么愿意了,
2)。我想问一下换行是有哪个属性了,
begin
with DataModule1.ADOQuery1 do begin
Open;
while not EOF do begin
memo1.Lines.Add(fieldbyname('bsf').asstring);
next;
end;
Close;
end;
end;②誰的换行?
上面的功能我都能实现了,
不过我还想问一个简单的问题了,
我现在想实现一个这样的功能了!就是我有一个窗体adoquery1.adoconnect.datasoruce,dbgrid1和2个buttionw为一个增加,和一个保存:
连接数据库一个,我想点击增加输入值.保存是能成功!但是我没有点点击增加,直接点击
保存就报错:我也想直接点击保存的话就想没有什么发生了,请帮我解决了,高手!!
我的简单的代码是
procedure Tw_jsgs.tb_addClick(Sender: TObject);
begin
adoquery1.Append ;
end ;
procedure Tw_jsgs.tb_addClick(Sender: TObject);
begin
adoquery1.post;
end ;
"adoquery1.post"一般不会人為的控製、增加和保存看做一個動作。