我在程序中,用QUERY控件查询数据表,得到100条记录,我如果把这些数据导出到一个SQL脚本中呢?
里面每条记录生成一条intert into语句。我在别的数据库里执行isql语句就可以导到别的数据库中。
什么控件能实现这样的功能呢?

解决方案 »

  1.   

    不需要把 导出到excel 里面 再直接导入好了
      

  2.   

    excel 里的如果再导入到SQL SERVER里呢?
      

  3.   

    有个工具MSSqlScript就是专门干这个用的。楼主下载一下看看。
      

  4.   

    excel 里的如果再导入到SQL SERVER里呢? DataSet.SQL.Clear;
      sqlStr := 'SELECT * into #dcb_TempMend FROM OpenDataSource(' + #39 + 'Microsoft.Jet.OLEDB.4.0'+
      #39 +','+ #39 + 'Data Source=' + filePath + filename  + ';User ID=Admin;Password=;'+
      'Extended properties=Excel 8.0' + #39 + ')...' + copy(filename,1,pos('.',filename)-1) + '$' ;
      DataSet.SQL.Add(sqlStr);
      try
        DataSet.ExecSQL;
      

  5.   

    手工拼写sql好了:
    var
    s,s1,s2:string
    s1:Variant
    i:integer;Query1.first;
    while not Query1.Eof do
    begin
    s1:='';
     for i:=0 to Query1.FieldCount-1 do
    begin             case Query1.Fields[i].DataType of
                        ftString: s1:= s1+ ''''+Query1.Fields[i].AsString+''',';
                        ftInteger: s1:= s1+ Query1.Fields[i].Asinteger+',';
    /.................................
                      //还有其他很多类型。。
                 end;           s2:=s2+Query1.Fields[i].FieldName+',';
    Query1.next;
     Delete(s1,Length(s1),1);
     Delete(s2,Length(s2),1);
    s:='Insert into TableName ('+s2+')Values('+s1+')'+'#13#10';//所需要的字符串,可以保存到文件或其他。
    end;
      

  6.   

    上面少写错一个:
    s:=s+'Insert into TableName ('+s2+')Values('+s1+')'+'#13#10';//所需要的字符串,可以保存到文件或其他。