大概思路是这样的,
1、新建一个窗体spdawh,用来显示详细信息。放了一个Table1(ADOTable1控件)用来连接主表sqda,ADOTable3控件连接从表GHSDA,连接keyfield是mainghs。最后用TDBGrid来显示详细信息。再放一个按钮,用来触发显示editsp窗体,代码如下:
procedure Tspdawh.BitBtn1Click(Sender: TObject);
begin
try
Application.CreateForm(Teditsp, editsp);
editsp.ShowModal;
finally
editsp.close;
end;
end;
2、在Teditsp窗体中放了一个导航控件wwDBNavigator,有修改和插入等功能,代码如下:
procedure Teditsp.NewCode(Sender: integer);//自动获取编号
var code: string;
begin
Query1.Close;
Query1.sql.text := 'select count(*) from spda';
Query1.open;
code := floattostr(100000 + Query1.Fields[0].asfloat + Sender);
Query1.Close;
Query1.sql.text := 'select count(*) from spda where code=:code';
Query1.Parameters[0].Value := code;
Query1.open;
if Query1.Fields[0].Value > 0 then
begin
Sender := sender + 1;
Newcode(sender);
end
else
begin spdawh.Table1.FieldByName('code').value := code;
end;
end;procedure Teditsp.wwDBNavigator1InsertClick(Sender: TObject);//插入数据
begin spdawh.Table1.Insert;
NewCode(0);
spdawh.Table1.FieldByName('czsp').value := '0';
spdawh.Table1.FieldByName('zhsp').value := '0';
spdawh.Table1.FieldByName('sybz').value := '1';
end;当插入数据时,出现错误提示:EOLeException with message'发生未知错误'。跟踪后发现这几个地方有问题:
spdawh.Table1.FieldByName('code').value := code;
spdawh.Table1.FieldByName('czsp').value := '0';
spdawh.Table1.FieldByName('zhsp').value := '0';
spdawh.Table1.FieldByName('sybz').value := '1';后来我把窗体spdawh的从表去掉?再进行同样的操作,正常!!要怎么修改才能把数据插入主表sqda中?谢谢!!
1、新建一个窗体spdawh,用来显示详细信息。放了一个Table1(ADOTable1控件)用来连接主表sqda,ADOTable3控件连接从表GHSDA,连接keyfield是mainghs。最后用TDBGrid来显示详细信息。再放一个按钮,用来触发显示editsp窗体,代码如下:
procedure Tspdawh.BitBtn1Click(Sender: TObject);
begin
try
Application.CreateForm(Teditsp, editsp);
editsp.ShowModal;
finally
editsp.close;
end;
end;
2、在Teditsp窗体中放了一个导航控件wwDBNavigator,有修改和插入等功能,代码如下:
procedure Teditsp.NewCode(Sender: integer);//自动获取编号
var code: string;
begin
Query1.Close;
Query1.sql.text := 'select count(*) from spda';
Query1.open;
code := floattostr(100000 + Query1.Fields[0].asfloat + Sender);
Query1.Close;
Query1.sql.text := 'select count(*) from spda where code=:code';
Query1.Parameters[0].Value := code;
Query1.open;
if Query1.Fields[0].Value > 0 then
begin
Sender := sender + 1;
Newcode(sender);
end
else
begin spdawh.Table1.FieldByName('code').value := code;
end;
end;procedure Teditsp.wwDBNavigator1InsertClick(Sender: TObject);//插入数据
begin spdawh.Table1.Insert;
NewCode(0);
spdawh.Table1.FieldByName('czsp').value := '0';
spdawh.Table1.FieldByName('zhsp').value := '0';
spdawh.Table1.FieldByName('sybz').value := '1';
end;当插入数据时,出现错误提示:EOLeException with message'发生未知错误'。跟踪后发现这几个地方有问题:
spdawh.Table1.FieldByName('code').value := code;
spdawh.Table1.FieldByName('czsp').value := '0';
spdawh.Table1.FieldByName('zhsp').value := '0';
spdawh.Table1.FieldByName('sybz').value := '1';后来我把窗体spdawh的从表去掉?再进行同样的操作,正常!!要怎么修改才能把数据插入主表sqda中?谢谢!!
解决方案 »
- 一个让我很困惑的问题?
- 如何用ADO 访问 ODBC数据源(Access 数据库类型)里面的一个表?
- 关于Dbgrid的若干问题:
- 我把ToolButton的Action都分别设置了ActionList中的Action,为什幺程序运行的时候ToolButton都不可以用了啊.
- 关于ado 和sql在不同机器上的问题
- 中国农个人管理专家-1.无帮助系统,完全仿真WINDOWS资源管理器;2 量身定制 3 产品免费
- ado连access添加记录的奇怪问题
- 寻找兼职编程人才
- 如何实现对Windows下文件的增,删,改进行监控
- DELPHI Tcombobox 子项中怎样添加按钮或其它控件
- 请问如何实现分仓库存啊?
- 利用变量向数据库插入数据的问题
FieldKind:fkLookup
Keyname:ghsname
keyfields:mainghs
不知我说清楚没有?请高手指点,谢谢!!
FieldKind:fkLookup
Keyname:ghsname
keyfields:mainghs
LookupDataSet:ADOTable3
LookupkeyFields:code
LookupResultField:name
spdawh.Table1.FieldByName('@zhsp').value := '0';
spdawh.Table1.FieldByName('@sybz').value := '1'参数前加@存储过程里是这样的,不知道你这个是不是要加