SQL数据库记录问题!(50分)

  • 主题发起人 主题发起人 laibin
  • 开始时间 开始时间
L

laibin

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,如何一个数据表中拷贝符合条件的记录到另一个数据表!
不用Query控件!在同一个数据库中操作!
 
用Table控件进行操作复制记录!
 
请问如何设置表签和读取标签!
 
写SQL语句是很简单的啊~
不懂你为什么?
 
请问拷贝记录的SQL语句如何写!
用copy命令吗?
 
表结构相同吗?如果相同,Sql语句可如下写:
SqlString:='insert into 表2 values(';
for xh:=0 to 表1.fieldCount-1 do
SqlString:=SqlString+F_GetZd(xh,表1);
SqlString:=SqlString+')';
AdoCommand.Commandtext:=SqlString;
AdoCommand.execute;
上面的表1表2用的都AdoDataset,所用到的函数如下:
Function F_GetZd(B_Zdh:integer;B_DataSet:TAdoDataSet= nil ):String;
//根据给出的字段号返回该字段的Sql字串,字段号从0开始计.本函数默认对Data.Set_Ls有效
begin
//尚需增加布尔等类型的判断.
if B_DataSet=nil then B_DataSet:=Data.Set_Ls;
With B_DataSet do
begin
if (Fields[B_Zdh].DataType =ftWideString) or (Fields[B_zdh].DataType =ftString) then
begin
Result:=iif(fields[B_Zdh].asstring='','null',''''+Fields[B_Zdh].asstring+'''');
exit;
end;
if Fields[B_Zdh].DataType = ftFloat then
begin
Result:=iif(fields[B_Zdh].asstring='','null',floatToStrF(Fields[B_Zdh].AsFloat,ffFixed,11,2));
exit;
end;
if (Fields[B_Zdh].DataType = FtSmallInt) or (Fields[B_Zdh].DataType =ftInteger)
or (Fields[B_Zdh].DataType=FtBCD) then
begin
Result:=iif(fields[B_Zdh].asstring='','null',fields[B_Zdh].AsString);
exit;
end;
if Fields[B_Zdh].DataType=ftDate then
begin
Result:=iif(Fields[B_Zdh].asstring='','null','#'+formatDateTime('yyyy-mm-dd',fields[B_Zdh].asDateTime)+'#');
exit;
end;
end;
Result:='';
end;
 
用BATchMOVE就可以了吧!
 
多人接受答案了。
 
后退
顶部