写数据到数据库常用的方法有两种:
1、在客户端程序用CommandText给服务器程序指令
2、以传递参数的方式
可我需要将很多的值写入数据库的不同表中(不是一次写入),例如:我需要将用户输入的姓名和地址写入Users表,然后又要将用户输入的工作单位写入Work表,......。
请问如何编写程序?如果以第2种方法,对于每一个表都得建一个DataSetProvider和ADOQuery,感觉很杂乱。但如果以第1种方法,如何将用户输入的数据以变量形式带入SQL语句?(例如:username为输入的变量,请问如何用SQL语句表示将username插入表Users?)
是否有第3种方法更简单、方便呢?
请大家帮忙解答!多提宝贵意见!
1、在客户端程序用CommandText给服务器程序指令
2、以传递参数的方式
可我需要将很多的值写入数据库的不同表中(不是一次写入),例如:我需要将用户输入的姓名和地址写入Users表,然后又要将用户输入的工作单位写入Work表,......。
请问如何编写程序?如果以第2种方法,对于每一个表都得建一个DataSetProvider和ADOQuery,感觉很杂乱。但如果以第1种方法,如何将用户输入的数据以变量形式带入SQL语句?(例如:username为输入的变量,请问如何用SQL语句表示将username插入表Users?)
是否有第3种方法更简单、方便呢?
请大家帮忙解答!多提宝贵意见!
with adoquery do
begin
close;
sql.clear;
sql.add('insert into user (username_column) values(:username)')'
Parameters[0].value:='sdf';
execsql;
end;
如果用这种方法,就要为传递给每一个表的参数设定一个ADOQuery,当表多的时候就显得很杂乱。
最好是能用第一种方法,但关键是如何将用户输入的数据以变量的形式带入SQL语句?
不知道我的意见是否正确,请多多指正。
你可以在程序中动态的赋值 啊,我现在都一般只用一 个对应多张表
create proc My_proc
@username char(10),
@Address varchar(50),
@Office varChar(50)
as
insert into TabUser(UserName,UserAddress)values(@userName,@Address)
insert into TabWork(OfficeName)values(@office)
go然后通过一个ADOQuery调用存储过程。
Query1.Close;
Query1.Sql.Clear;
Query1.SQL.add(Execute my_proc :userName,:Address,:Office);
Query1.ParamaByName('UserName').Value:=?
......
Query1.Execute;