我用的是SQL+DELPHI,运用三层结构,怎么在表中INSERT记录呢
我希望的是从客户端获得一条记录的信息,然后传到服务器端,在服务器端实现INSERT功能,不知道这样可不可以实现,怎么实现????谢谢各位帮忙!!!
我希望的是从客户端获得一条记录的信息,然后传到服务器端,在服务器端实现INSERT功能,不知道这样可不可以实现,怎么实现????谢谢各位帮忙!!!
解决方案 »
- 简单问题:是用soap技术做三层系统中,客户端调用应用层,任何string类型是参数都必须按base64编码吗
- 如何在Treeview中增加一新节点,并把鼠标定位在该节点,给它重新命名?
- delphi编写ActiveX调用DLL的问题
- 在增加新记录的时候,怎么输入的内容为空,而阻止呢?(dbgrid)
- 在delphi中如何简便的将一个数组或记录的各个元素都清零?
- 如何在Delphi中调用C++的动态连接库
- 哪有DELPHI6.0下载
- 能不能把我的问题全部下载下来?
- 一个关于制作安装程序的问题?
- 怎样在一定的范围内产生随机整数?谢谢!
- delphi中如何检测一个目录中的哪个文件是最近编辑的?
- 时间如何相加呢??
在客户端放一个TClientDataSet 并把它的RemoteServer和Providername属性设好。关键要把Providername 设为中间层用于insert的DataSetProvider,
然后再客户端加入如下代码
ClientDataSet.close;
ClientDataSet.commandtext:='insert into table values(:tt)';
ClientDataSet.ExecSQL;
Query1.sql.add('insert into table values(你想要的值)');
然后在客户端:
with clientdata do
begin
close;
params.parambyanme().vaule:='你想要传递的值';
....
execsql;
end;
procedure InsertData(TableName:string; FieldArray:array of string;ValueArray:array of string);
var
I:Integer;
sSql, sFields, sValues:string;
begin
if (Length(FieldArray) <> Length(ValueArray)) or (Length(FieldArray)=0) then
begin
raise Exception.Create('传入的参数错误!');
Exit;
end;
sSql := 'Insert into '+TableName+'(';
sFields := '';
sValues := '';
for I:=Low(FieldArray) to High(FieldArray) do
begin
if I<High(FieldArray) then
begin
sFields := sFields + FieldArray[I]+ ',';
sValues := sValues + ValueArray[I]+',';
end
else begin
sFields := sFields + FieldArray[I];
sValues := sValues + ValueArray[I];
end;
end;
sSql := sSql + sFields +') values('+sValues+')';
with ADOQuery1 do
begin
if Active then Active := false;
sql.add(sSql);
try end;
end;
procedure InsertData(TableName:string; FieldArray:array of string;ValueArray:array of string);
var
I:Integer;
sSql, sFields, sValues:string;
begin
if (Length(FieldArray) <> Length(ValueArray)) or (Length(FieldArray)=0) then
begin
raise Exception.Create('传入的参数错误!');
Exit;
end;
sSql := 'Insert into '+TableName+'(';
sFields := '';
sValues := '';
for I:=Low(FieldArray) to High(FieldArray) do
begin
if I<High(FieldArray) then
begin
sFields := sFields + FieldArray[I]+ ',';
sValues := sValues + ValueArray[I]+''',''';
end
else begin
sFields := sFields + FieldArray[I];
sValues := sValues + ValueArray[I]+'''';
end;
end;
sSql := sSql + sFields +') values('+sValues+')';
with ADOQuery1 do
begin
if Active then Active := false;
sql.add(sSql);
try
ExecSQL;
except
end;
end;
end;
然后在客户端调用就可以了
不好意思,刚才没输完就提交了,按错键了。