求一个写入数据库的问题.(50分)

  • 主题发起人 主题发起人 八戒儿
  • 开始时间 开始时间

八戒儿

Unregistered / Unconfirmed
GUEST, unregistred user!
我想让让点了一个按钮后同时往两个以上的数据库中写入数据,应该怎么写代码?
下面这个哪错了?怎么提示错误

begin
with query2 do
begin
SQL.Clear;
sql.Add('insert into liushui');
sql.Add('values(:股金账号,:户名,:摘要,:贷方发生额,:标志)');
parambyname('股金账号').AsString := bsskinedit1.Text;
parambyname('户名').AsString := bsskinedit2.Text;
parambyname('摘要').AsString := '入股';
parambyname('贷方发生额').AsString := bsskinedit4.Text;
execsql;
end;
with query1 do
begin
sql.Clear;
sql.Add('insert into zong');
sql.Add('values(:股金账号,:入股姓名,:入股日期,:入股金额,:股金类型,:证件类型,:证件号码,:退股密码,:股金余额,:通讯地址,:其他备注)');
parambyname('股金账号').AsString:=bsskinedit1.Text;
parambyname('入股姓名').AsString:=bsskinedit2.Text;
parambyname('入股日期').AsDateTime:=bsskindateedit1.Date;
parambyname('入股金额').AsString:=bsskinedit4.Text;
parambyname('股金类型').AsString:=bsskincombobox1.Text;
parambyname('证件类型').AsString:=bsskincombobox2.Text;
parambyname('证件号码').AsString:=bsskinedit10.Text;
parambyname('退股密码').AsString:=bsskinedit6.Text;
parambyname('股金余额').AsString:=bsskinedit4.Text;
parambyname('通讯地址').AsString:=bsskinedit7.Text;
parambyname('其他备注').AsString:=bsskinedit8.Text;
execsql;
end;
table1.Refresh;
if messagedlg(bsskinedit2.Text+'入股已录入成功,是否继续录入?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
bsskinedit1.Text:=floattostr(strtofloat(bsskinedit1.Text)+1);
bsskinedit2.Text:='';
bsskinedit4.Text:='';
bsskinedit10.Text:='';
bsskinedit6.Text:='';
bsskinedit7.Text:='';
bsskinedit8.Text:='';
bsskindateedit1.Date:=now;
bsskinedit1.SetFocus;
end
else
form4.Close;
end;
end;
 
提示什么错误啊?
 
光标就提示到
with query1 do
这一行了.
提示检测到错误类EDBEngineError,错误信息:'Invalid parameter.'
 
写一个就可。在一个的触发器中写另外数据库
 
怎么做?能不能祥细说说?
我想操作要至少四个数据库的
 
高手说说啊,,我没分了..谢谢
 
二个query各自连接不同的数据库,然后分别用插入语句就行了。
其实都一样。就是query连接数据库不同。
with query1 do
这一行了.
提示检测到错误类EDBEngineError,错误信息:'Invalid parameter.'
可能是连接错误,用ADOQuery连接比较好
 
我没有在窗体设置QUERY的连接数据库啊,,只是给出了个路径,我检查过很多遍了也没有错误,把QUERY2的插入代码不管放到哪里都会报错的,提示跟上面一样
 
query先close 再clear
还有你的query2的"标志"参数的值也没有看到再哪里赋值的
insert语句最好写成 Insert into table(...) values(...)的形式
牵涉到多数据库更新 这样操作同步比较困难
 
先关闭了再清除也不也的,错误提示跟上面的一样啊

"还有你的query2的"标志"参数的值也没有看到再哪里赋值的"

这个是什么意思啊???
 
begin
with query2 do
begin
SQL.Clear;
sql.Add('insert into liushui');
sql.Add('values(:股金账号,:户名,:摘要,:贷方发生额,:标志)');
parambyname('股金账号').AsString := bsskinedit1.Text;
parambyname('户名').AsString := bsskinedit2.Text;
parambyname('摘要').AsString := '入股';
parambyname('贷方发生额').AsString := bsskinedit4.Text;
execsql;
end;
这个插入语句不是有五个参数么:股金账号,:户名,:摘要,:贷方发生额,:标志
后面赋值时我只看到前面四个 最后一个 标志 没有看到哪里赋值的[:)]
 
呵呵,是那个啊,那个这里不用赋值,所以就没有写
我试试去掉了也还是那个提示,,,,
 
你先檢查一下。二個query能不能打開各自己數據庫裡的表。。你的問題好像不是語句,是QUERY不能執行。。
 
测试过了,两个QUERY都可以打开各自的数据库的,,,
 
有没有其它办法能同时向多个数据库中添加数据啊???谢谢
 
对于数字型的参数比如:贷方发生额
parambyname('贷方发生额').value := strtofloat(bsskinedit4.Text);
的形式试试.
sql server有对多个数据库同步的功能
 
试过了也不行...
我用一个QUERY换SQL一个一个的操作数据库也是提示这个错误

有其它同时写入多个数据库的方法吗?我搜不到
 
提議一下: 你的數據庫表字段類型 是否定義為自動編號.或者其他的不能插入數據的呢?
 
你的什么数据库
 
DB数据库

有一个数据库里面有自动编号的,不过我也没有向那个自动编号的项目赋值啊
 
后退
顶部