C
coldease
Unregistered / Unconfirmed
GUEST, unregistred user!
开发版本:DELPHI6 数据库:ACCESS2000 ADO版本2.7 采用SocketConnection方式连接
在实际使用中,可以正常查询、修改,但不能增加记录(操作全部采用SQL语句完成)
部分源码如下:
procedure TAddfGf.Button1Click(Sender: TObject);
var s, s1, s2: string;
begin
if length(edit1.text) = 0 then
begin
MessageDlg('供方编号不能为空!', mtWarning, [mbYes], 0);
abort;
end;
if length(edit2.text) = 0 then
begin
MessageDlg('供方简称不能为空!', mtWarning, [mbYes], 0);
abort;
end;
if editing = false then
//增加数据标识 ,为FALSE为增加记录
begin
maindata.updataquery.Close;
s := 'insert into 供方资料 (供方编号,供方简称,供方全称,详细地址,邮政编码,法人代表,电子邮箱,公司网页,营业执照,';
s1 := '税务登记证,质量体系,更名资料,备注说明,公司图片) values';
s2 := 'p_供方编号,_供方简称,_供方全称,_详细地址,_邮政编码,_法人代表,_电子邮箱,_公司网页,_营业执照,_税务登记证,_质量体系,_更名资料,_备注说明,_公司图片)';
maindata.updataquery.Close;
maindata.updataquery.commandtext := s + s1 + s2;
maindata.updataquery.params.parambyName('p_供方编号').value := edit1.text;
maindata.updataquery.params.parambyName('p_供方简称').value := edit2.text;
maindata.updataquery.params.parambyName('p_供方全称').value := edit3.text;
maindata.updataquery.params.parambyName('p_详细地址').value := edit4.text;
maindata.updataquery.params.parambyName('p_邮政编码').value := edit5.text;
maindata.updataquery.params.parambyName('p_法人代表').value := edit6.text;
maindata.updataquery.params.parambyName('p_电子邮箱').value := edit7.text;
maindata.updataquery.params.parambyName('p_公司网页').value := edit8.text;
maindata.updataquery.params.parambyName('p_营业执照').value := combobox1.text;
maindata.updataquery.params.parambyName('p_税务登记证').value := combobox2.text;
maindata.updataquery.params.parambyName('p_质量体系').value := edit9.text;
maindata.updataquery.params.parambyName('p_更名资料').value := edit10.text;
// maindata.updataquery.parameters.parambyName('p_备注说明').DataType := ftmemo;
maindata.updataquery.params.parambyName('p_备注说明').Assign(memo1.lines);
if pictrueform.Image1.Picture.Graphic = nil then
else
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEGdo
begin
Assign(pictrueform.Image1.Picture.Graphic);
MS := TMemoryStream.create;
SaveToStream(MS);
MS.Position := 0;
maindata.updataquery.params.parambyName('p_公司图片').DataType := ftGraphic;
maindata.updataquery.params.parambyName('p_公司图片').LoadFromStream(MS, ftGraphic);
end;
finally
MyJPEG.Free;
end;
end;
try
maindata.updataquery.Execute;
MessageDlg('数据保存成功。', mtinformation, [mbYes], 0);
pictrueform.IMAGE1.PICTURE.Graphic := nil;
listbox1.Items.add(edit2.text);
except
on E: Exceptiondo
begin
// MessageDlg('数据保存失败,请检查数据完整性!', mterror, [mbYes], 0);
raise;
end;
end;
end
else
begin
maindata.updataquery.Close;
s := 'update 供方资料 set 供方编号=_供方编号,供方简称=_供方简称,供方全称=_供方全称,';
s1 := '详细地址=_详细地址,邮政编码=_邮政编码,法人代表=_法人代表,电子邮箱=_电子邮箱,公司网页=_公司网页,营业执照=_营业执照,';
s2 := '税务登记证=_税务登记证,质量体系=_质量体系,更名资料=_更名资料,备注说明=_备注说明,公司图片=_公司图片 where 供方编号=_name';
maindata.updataquery.commandtext := s + s1 + s2;
maindata.updataquery.params.parambyName('p_供方编号').value := edit1.text;
maindata.updataquery.params.parambyName('p_供方简称').value := edit2.text;
maindata.updataquery.params.parambyName('p_供方全称').value := edit3.text;
maindata.updataquery.params.parambyName('p_详细地址').value := edit4.text;
maindata.updataquery.params.parambyName('p_邮政编码').value := edit5.text;
maindata.updataquery.params.parambyName('p_法人代表').value := edit6.text;
maindata.updataquery.params.parambyName('p_电子邮箱').value := edit7.text;
maindata.updataquery.params.parambyName('p_公司网页').value := edit8.text;
maindata.updataquery.params.parambyName('p_营业执照').value := combobox1.text;
maindata.updataquery.params.parambyName('p_税务登记证').value := combobox2.text;
maindata.updataquery.params.parambyName('p_质量体系').value := edit9.text;
maindata.updataquery.params.parambyName('p_更名资料').value := edit10.text;
// maindata.updataquery.parameters.parambyName('p_备注说明').DataType := ftmemo;
maindata.updataquery.params.parambyName('p_备注说明').Assign(memo1.lines);
maindata.updataquery.params.parambyName('p_name').value := bianhao;
if pictrueform.Image1.Picture.Graphic = nil then
begin
maindata.updataquery.params.parambyName('p_公司图片').Assign(pictrueform.Image1.Picture);
end
else
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEGdo
begin
Assign(pictrueform.Image1.Picture.Graphic);
MS := TMemoryStream.create;
SaveToStream(MS);
MS.Position := 0;
// maindata.updataquery.parameters.parambyName('p_备注说明').DataType := ftGraphic;
maindata.updataquery.params.parambyName('p_公司图片').LoadFromStream(MS, ftGraphic);
end;
finally
MyJPEG.Free;
end;
end;
try
maindata.updataquery.Execute;
//maindata.maindataconnect.CommitTrans;
MessageDlg('数据修改成功。', mtinformation, [mbYes], 0);
pictrueform.IMAGE1.PICTURE.Graphic := nil;
bianhao := '';
editing := true;
button2.enabled := false;
button1.caption := '保存';
except
on E: Exceptiondo
{ MessageDlg('数据修改失败,请检查数据完整性!', mterror, [mbYes], 0);
maindata.maindataconnect.RollbackTrans;
edit1.Text := '';
edit2.Text := '';
edit3.Text := '';
edit4.Text := '';
edit5.Text := '';
edit6.Text := '';
edit7.Text := '';
edit8.Text := '';
edit9.Text := '';
edit10.Text := '';
combobox1.Text := '';
combobox2.Text := '';
memo1.clear;}
begin
raise;
// maindata.maindataconnect.RollbackTrans;
editing := false;
button2.enabled := false;
button1.caption := '保存';
end;
end;
end;
end;
maindata.updataquery为Tclientdataset
其中INSERT INTO语句执行时,出错提示:参数类型不正确,或在不可接受范围或与其他参数冲突。
但以上是从单机版更改而来的(单机版可正常执行),不知道哪为高手能否解释。
另:在maindata.updataquery执行EXECUTE,就可以将数据更改到数据库中,为什么不需要ApplyUpdates??
在实际使用中,可以正常查询、修改,但不能增加记录(操作全部采用SQL语句完成)
部分源码如下:
procedure TAddfGf.Button1Click(Sender: TObject);
var s, s1, s2: string;
begin
if length(edit1.text) = 0 then
begin
MessageDlg('供方编号不能为空!', mtWarning, [mbYes], 0);
abort;
end;
if length(edit2.text) = 0 then
begin
MessageDlg('供方简称不能为空!', mtWarning, [mbYes], 0);
abort;
end;
if editing = false then
//增加数据标识 ,为FALSE为增加记录
begin
maindata.updataquery.Close;
s := 'insert into 供方资料 (供方编号,供方简称,供方全称,详细地址,邮政编码,法人代表,电子邮箱,公司网页,营业执照,';
s1 := '税务登记证,质量体系,更名资料,备注说明,公司图片) values';
s2 := 'p_供方编号,_供方简称,_供方全称,_详细地址,_邮政编码,_法人代表,_电子邮箱,_公司网页,_营业执照,_税务登记证,_质量体系,_更名资料,_备注说明,_公司图片)';
maindata.updataquery.Close;
maindata.updataquery.commandtext := s + s1 + s2;
maindata.updataquery.params.parambyName('p_供方编号').value := edit1.text;
maindata.updataquery.params.parambyName('p_供方简称').value := edit2.text;
maindata.updataquery.params.parambyName('p_供方全称').value := edit3.text;
maindata.updataquery.params.parambyName('p_详细地址').value := edit4.text;
maindata.updataquery.params.parambyName('p_邮政编码').value := edit5.text;
maindata.updataquery.params.parambyName('p_法人代表').value := edit6.text;
maindata.updataquery.params.parambyName('p_电子邮箱').value := edit7.text;
maindata.updataquery.params.parambyName('p_公司网页').value := edit8.text;
maindata.updataquery.params.parambyName('p_营业执照').value := combobox1.text;
maindata.updataquery.params.parambyName('p_税务登记证').value := combobox2.text;
maindata.updataquery.params.parambyName('p_质量体系').value := edit9.text;
maindata.updataquery.params.parambyName('p_更名资料').value := edit10.text;
// maindata.updataquery.parameters.parambyName('p_备注说明').DataType := ftmemo;
maindata.updataquery.params.parambyName('p_备注说明').Assign(memo1.lines);
if pictrueform.Image1.Picture.Graphic = nil then
else
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEGdo
begin
Assign(pictrueform.Image1.Picture.Graphic);
MS := TMemoryStream.create;
SaveToStream(MS);
MS.Position := 0;
maindata.updataquery.params.parambyName('p_公司图片').DataType := ftGraphic;
maindata.updataquery.params.parambyName('p_公司图片').LoadFromStream(MS, ftGraphic);
end;
finally
MyJPEG.Free;
end;
end;
try
maindata.updataquery.Execute;
MessageDlg('数据保存成功。', mtinformation, [mbYes], 0);
pictrueform.IMAGE1.PICTURE.Graphic := nil;
listbox1.Items.add(edit2.text);
except
on E: Exceptiondo
begin
// MessageDlg('数据保存失败,请检查数据完整性!', mterror, [mbYes], 0);
raise;
end;
end;
end
else
begin
maindata.updataquery.Close;
s := 'update 供方资料 set 供方编号=_供方编号,供方简称=_供方简称,供方全称=_供方全称,';
s1 := '详细地址=_详细地址,邮政编码=_邮政编码,法人代表=_法人代表,电子邮箱=_电子邮箱,公司网页=_公司网页,营业执照=_营业执照,';
s2 := '税务登记证=_税务登记证,质量体系=_质量体系,更名资料=_更名资料,备注说明=_备注说明,公司图片=_公司图片 where 供方编号=_name';
maindata.updataquery.commandtext := s + s1 + s2;
maindata.updataquery.params.parambyName('p_供方编号').value := edit1.text;
maindata.updataquery.params.parambyName('p_供方简称').value := edit2.text;
maindata.updataquery.params.parambyName('p_供方全称').value := edit3.text;
maindata.updataquery.params.parambyName('p_详细地址').value := edit4.text;
maindata.updataquery.params.parambyName('p_邮政编码').value := edit5.text;
maindata.updataquery.params.parambyName('p_法人代表').value := edit6.text;
maindata.updataquery.params.parambyName('p_电子邮箱').value := edit7.text;
maindata.updataquery.params.parambyName('p_公司网页').value := edit8.text;
maindata.updataquery.params.parambyName('p_营业执照').value := combobox1.text;
maindata.updataquery.params.parambyName('p_税务登记证').value := combobox2.text;
maindata.updataquery.params.parambyName('p_质量体系').value := edit9.text;
maindata.updataquery.params.parambyName('p_更名资料').value := edit10.text;
// maindata.updataquery.parameters.parambyName('p_备注说明').DataType := ftmemo;
maindata.updataquery.params.parambyName('p_备注说明').Assign(memo1.lines);
maindata.updataquery.params.parambyName('p_name').value := bianhao;
if pictrueform.Image1.Picture.Graphic = nil then
begin
maindata.updataquery.params.parambyName('p_公司图片').Assign(pictrueform.Image1.Picture);
end
else
begin
MyJPEG := TJPEGImage.Create;
try
with MyJPEGdo
begin
Assign(pictrueform.Image1.Picture.Graphic);
MS := TMemoryStream.create;
SaveToStream(MS);
MS.Position := 0;
// maindata.updataquery.parameters.parambyName('p_备注说明').DataType := ftGraphic;
maindata.updataquery.params.parambyName('p_公司图片').LoadFromStream(MS, ftGraphic);
end;
finally
MyJPEG.Free;
end;
end;
try
maindata.updataquery.Execute;
//maindata.maindataconnect.CommitTrans;
MessageDlg('数据修改成功。', mtinformation, [mbYes], 0);
pictrueform.IMAGE1.PICTURE.Graphic := nil;
bianhao := '';
editing := true;
button2.enabled := false;
button1.caption := '保存';
except
on E: Exceptiondo
{ MessageDlg('数据修改失败,请检查数据完整性!', mterror, [mbYes], 0);
maindata.maindataconnect.RollbackTrans;
edit1.Text := '';
edit2.Text := '';
edit3.Text := '';
edit4.Text := '';
edit5.Text := '';
edit6.Text := '';
edit7.Text := '';
edit8.Text := '';
edit9.Text := '';
edit10.Text := '';
combobox1.Text := '';
combobox2.Text := '';
memo1.clear;}
begin
raise;
// maindata.maindataconnect.RollbackTrans;
editing := false;
button2.enabled := false;
button1.caption := '保存';
end;
end;
end;
end;
maindata.updataquery为Tclientdataset
其中INSERT INTO语句执行时,出错提示:参数类型不正确,或在不可接受范围或与其他参数冲突。
但以上是从单机版更改而来的(单机版可正常执行),不知道哪为高手能否解释。
另:在maindata.updataquery执行EXECUTE,就可以将数据更改到数据库中,为什么不需要ApplyUpdates??