亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dbtxtimp.pas

?? 從文本文件象Oracle數據庫導入數據
?? PAS
字號:
unit DBTxtImp;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Grids, DBGrids, Mask, enterctl, ToolEdit, Db, OracleData,
  ExtCtrls, RxMemDS, RXSpin;

type
  TfrmDBTxtImp = class(TForm)
    OraDsFields: TOracleDataSet;
    dsFields: TDataSource;
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    rbTab: TRadioButton;
    rbSep: TRadioButton;
    rbOther: TRadioButton;
    rbComma: TRadioButton;
    edtSeparator: TEdit;
    rbSpace: TRadioButton;
    GroupBox2: TGroupBox;
    rbFirstData: TRadioButton;
    rbFirstName: TRadioButton;
    Label1: TLabel;
    cmbedtFileName: TComboEdit;
    Label8: TLabel;
    Button1: TButton;
    dgrdFields: TDBGrid;
    rxmtblFields: TRxMemoryData;
    rxmtblFieldsTABLE_NAME: TStringField;
    rxmtblFieldsCOLUMN_NAME: TStringField;
    rxmtblFieldsCOLUMN_ID: TFloatField;
    rxmtblFieldsDATA_LENGTH: TFloatField;
    rxmtblFieldsNULLABLE: TStringField;
    rxmtblFieldsADJUST_TYPE: TStringField;
    rxmtblFieldsUPDATE_MODE: TStringField;
    rxmtblFieldsDATA_FROM: TStringField;
    rxmtblFieldsDEFAULT_VALUE: TStringField;
    rxmtblFieldsFILE_INDEX: TFloatField;
    cmbedtTableName: TComboEdit;
    OpenDialog1: TOpenDialog;
    Label2: TLabel;
    spinCmtCnt: TRxSpinEdit;
    cbIgnoreCoute: TCheckBox;
    Label3: TLabel;
    edtDateFormat: TEdit;
    cbForceDefFields: TCheckBox;
    rxmtblFieldsIGNORE_COUTE: TStringField;
    rxmtblFieldsDATE_FORMAT: TStringField;
    cbAdjustFlag: TCheckBox;
    procedure rxmtblFieldsADJUST_TYPEGetText(Sender: TField;
      var Text: String; DisplayText: Boolean);
    procedure rxmtblFieldsADJUST_TYPESetText(Sender: TField;
      const Text: String);
    procedure rxmtblFieldsUPDATE_MODEGetText(Sender: TField;
      var Text: String; DisplayText: Boolean);
    procedure rxmtblFieldsUPDATE_MODESetText(Sender: TField;
      const Text: String);
    procedure rxmtblFieldsDATA_FROMGetText(Sender: TField;
      var Text: String; DisplayText: Boolean);
    procedure rxmtblFieldsDATA_FROMSetText(Sender: TField;
      const Text: String);
    procedure cmbedtFileNameButtonClick(Sender: TObject);
    procedure cmbedtTableNameButtonClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure cmbedtTableNameKeyPress(Sender: TObject; var Key: Char);
    procedure Button1Click(Sender: TObject);
    procedure rxmtblFieldsIGNORE_COUTEGetText(Sender: TField;
      var Text: String; DisplayText: Boolean);
    procedure rxmtblFieldsIGNORE_COUTESetText(Sender: TField;
      const Text: String);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure DoImpData(ATableName, AFileName: string);
  end;

var
  frmDBTxtImp: TfrmDBTxtImp;

implementation

{$R *.DFM}
uses dData, uFileFieldDefines, Msg;

procedure TfrmDBTxtImp.rxmtblFieldsADJUST_TYPEGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if (Sender.AsString = '0') or (Sender.AsString = 'f') or (Sender.AsString = 'F') then
    Text := '不校驗'
  else if (Sender.AsString = '1') or (Sender.AsString = 't') or (Sender.AsString = 'T') then
    Text := '主鍵校驗';
end;

procedure TfrmDBTxtImp.rxmtblFieldsADJUST_TYPESetText(Sender: TField;
  const Text: String);
begin
  if (Text = '0') or (Text = 'f') or (Text = 'F') or (Text = '否') or (Text = '不校驗') then
    Sender.AsString := '0'
  else if (Text = '1') or (Text = 't') or (Text = 'T') or (Text = '是') or (Text = '主鍵校驗') then
    Sender.AsString := '1'
end;

procedure TfrmDBTxtImp.rxmtblFieldsUPDATE_MODEGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Sender.AsString = '0' then
    Text := '不更新'
  else if Sender.AsString = '1' then
    Text := '替換'
  else if Sender.AsString = '2' then
    Text := '累加'
  else if Sender.AsString = '3' then
    Text := '合并';
end;

procedure TfrmDBTxtImp.rxmtblFieldsUPDATE_MODESetText(Sender: TField;
  const Text: String);
begin
  if Text = '不更新' then
    Sender.AsString := '0'
  else if Text = '替換' then
    Sender.AsString := '1'
  else if Text = '累加' then
    Sender.AsString := '2'
  else if Text = '合并' then
    Sender.AsString := '3';
end;

procedure TfrmDBTxtImp.rxmtblFieldsDATA_FROMGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Sender.AsString = '0' then
    Text := '文件導入'
  else if Sender.AsString = '1' then
    Text := '系統默認'
  else if Sender.AsString = '2' then
    Text := '自增字段'
  else
    Text := Sender.AsString;
end;

procedure TfrmDBTxtImp.rxmtblFieldsDATA_FROMSetText(Sender: TField;
  const Text: String);
begin
  if (Text = '文件導入') or (Text = '0') then
    Sender.AsString := '0'
  else if (Text = '系統默認') or (Text = '1') then
    Sender.AsString := '1'
  else if (Text = '自增字段') or (Text = '2') then
    Sender.AsString := '2'
  else
    Sender.AsString := '1';
end;

procedure TfrmDBTxtImp.cmbedtFileNameButtonClick(Sender: TObject);
begin
  if OpenDialog1.Execute then
    cmbedtFileName.Text := OpenDialog1.FileName;
end;

procedure TfrmDBTxtImp.cmbedtTableNameButtonClick(Sender: TObject);
begin
  rxmtblFields.Close;
  rxmtblFields.Open;
  if (Sender as TComboEdit).Text = '' then
    Exit;
  OraDsFields.Close;
  OraDsFields.SQL.Text := 'select table_name     '
                        + '      ,column_name    '
                        + '      ,column_id      '
                        + '      ,data_length    '
                        + '      ,nullable       '
                        + '  from cols t         '
                        + ' where table_name = ''' + UpperCase((Sender as TComboEdit).Text) + ''''
                        + ' order by column_id   ';
  OraDsFields.Open;
  while not OraDsFields.Eof do
  begin
    rxmtblFields.Append;
    rxmtblFields.FieldByName('table_name').AsString := OraDsFields.FieldByName('table_name').AsString;
    rxmtblFields.FieldByName('column_name').AsString := OraDsFields.FieldByName('column_name').AsString;
    rxmtblFields.FieldByName('column_id').AsFloat := OraDsFields.FieldByName('column_id').AsFloat;
    rxmtblFields.FieldByName('data_length').AsFloat := OraDsFields.FieldByName('data_length').AsFloat;
    rxmtblFields.FieldByName('nullable').AsString := OraDsFields.FieldByName('nullable').AsString;
    rxmtblFields.FieldByName('ignore_coute').AsString := '0';
    rxmtblFields.FieldByName('date_format').AsString := '';

    if OraDsFields.FieldByName('nullable').AsString = 'Y' then
    begin
      rxmtblFields.FieldByName('ADJUST_TYPE').AsString := '0';
      rxmtblFields.FieldByName('UPDATE_MODE').AsString := '1';
    end
    else
    begin
      rxmtblFields.FieldByName('ADJUST_TYPE').AsString := '1';
      rxmtblFields.FieldByName('UPDATE_MODE').AsString := '0';
    end;
    rxmtblFields.FieldByName('DATA_FROM').AsString := '0';
    rxmtblFields.FieldByName('DEFAULT_VALUE').AsString := '';
    rxmtblFields.FieldByName('FILE_INDEX').AsInteger := OraDsFields.FieldByName('column_id').AsInteger - 1;
    rxmtblFields.Post;
    OraDsFields.Next;
  end;
  OraDsFields.Close;
end;

procedure TfrmDBTxtImp.FormCreate(Sender: TObject);
begin
  cmbedtTableName.EnterAsTab := False;
  cmbedtFileName.EnterAsTab := False;
  TDrawGrid(dgrdFields).Options := TDrawGrid(dgrdFields).Options - [goFixedVertLine];
  TDrawGrid(dgrdFields).Options := TDrawGrid(dgrdFields).Options - [goFixedHorzLine];
end;

procedure TfrmDBTxtImp.cmbedtTableNameKeyPress(Sender: TObject;
  var Key: Char);
begin
  if Key = #13 then
    (Sender as TComboEdit).Button.Click;
end;

procedure TfrmDBTxtImp.Button1Click(Sender: TObject);
begin
  if cmbedtTableName.Text = '' then
  begin
    ShowMessage('請輸入數據庫表名稱!');
    Exit;
  end;
  if (not rxmtblFields.Active) or rxmtblFields.IsEmpty then
  begin
    ShowMessage('數據庫表字段信息加載失敗!');
    Exit;
  end;
  if cmbedtFileName.Text = '' then
  begin
    ShowMessage('請輸入文本文件名稱!');
    Exit;
  end;
  if not FileExists(cmbedtFileName.Text) then
  begin
    ShowMessage('找不到文本文件!');
    Exit;
  end;
  DoImpData(rxmtblFields.FieldByName('table_name').AsString, cmbedtFileName.Text);
end;

procedure TfrmDBTxtImp.DoImpData(ATableName, AFileName: string);
var
  pFileFieldTemp: PFileField;
  ifImpFile: TImpFile;
begin
  if (ATableName = '') or (AFileName = '') then
    Exit;
  if (not rxmtblFields.Active) or rxmtblFields.IsEmpty then
    Exit;
  ifImpFile := TImpFile.Create;
  try
    OraDsFields.Close;
    OraDsFields.SQL.Text := 'select * from ' + ATableName + ' where 1<0 ';
    try
      OraDsFields.Open;
    except
      ShowMessage('目標表打開失敗!');
      Exit;
    end;
    ifImpFile.fFirstLine := rbFirstData.Checked;
    ifImpFile.fShowProgress := True;
    ifImpFile.FileName := AFileName;
    ifImpFile.DataNo := ATableName;
    ifImpFile.DataName := ATableName;
    ifImpFile.TableName := ATableName;
    ifImpFile.CommitCount := Round(spinCmtCnt.Value);
    ifImpFile.AdjustFlag := cbAdjustFlag.Checked;
    ifImpFile.DateFormat := edtDateFormat.Text;
    ifImpFile.IgnoreCoute := cbIgnoreCoute.Checked;
    ifImpFile.fForceDefineFields := cbForceDefFields.Checked;
    
    if rbTab.Checked then
      ifImpFile.Separator := #9
    else if rbSep.Checked then
      ifImpFile.Separator := ';'
    else if rbComma.Checked then
      ifImpFile.Separator := ','
    else if rbSpace.Checked then
      ifImpFile.Separator := ' '
    else
      ifImpFile.Separator := edtSeparator.Text;
    ifImpFile.fFileFields.Clear;
    if rxmtblFields.State in [dsEdit, dsInsert] then
      rxmtblFields.Post;
    rxmtblFields.First;
    while not rxmtblFields.Eof do
    begin
      //創建字段定義對象
      pFileFieldTemp := New(PFileField);
      pFileFieldTemp^ := TFileField.Create;
      //設定字段定義對象的定義參數
      pFileFieldTemp^.fTableName := ATableName;
      pFileFieldTemp^.fFieldName := rxmtblFields.FieldByName('column_name').AsString;
      pFileFieldTemp^.fFieldType := OraDsFields.FieldByName(rxmtblFields.FieldByName('column_name').AsString).DataType;
      pFileFieldTemp^.fAdjustFlag := rxmtblFields.FieldByName('adjust_type').AsString = '1';
      pFileFieldTemp^.fDataLength := rxmtblFields.FieldByName('data_length').AsInteger;
      if rxmtblFields.FieldByName('update_mode').AsString = '1' then
        pFileFieldTemp^.fUpdateMode := fumUpdate
      else if rxmtblFields.FieldByName('update_mode').AsString = '2' then
        pFileFieldTemp^.fUpdateMode := fumAdd
      else if rxmtblFields.FieldByName('update_mode').AsString = '3' then
        pFileFieldTemp^.fUpdateMode := fumUnion
      else
        pFileFieldTemp^.fUpdateMode := fumNone;
      if rxmtblFields.FieldByName('data_from').AsString = '1' then
        pFileFieldTemp^.fDataType := fdtUseDefault
      else if rxmtblFields.FieldByName('data_from').AsString = '2' then
        pFileFieldTemp^.fDataType := fdtAutoID
      else
        pFileFieldTemp^.fDataType := fdtFromFile;
      if rxmtblFields.FieldByName('file_index').IsNull then
        pFileFieldTemp^.fFileIndex := -1
      else
        pFileFieldTemp^.fFileIndex := rxmtblFields.FieldByName('file_index').AsInteger;
      pFileFieldTemp^.fDefaultValue := rxmtblFields.FieldByName('default_value').AsString;
      pFileFieldTemp^.fDateFormat := rxmtblFields.FieldByName('date_format').AsString;
      pFileFieldTemp^.fIgnoreCoute := rxmtblFields.FieldByName('ignore_coute').AsString = '1';
      //添加字段定義對象(到當前文件定義對象)
      ifImpFile.fFileFields.Add(pFileFieldTemp);
      rxmtblFields.Next;
    end;
    ifImpFile.DoImport(nil);
    if FileExists(ifImpFile.LogFileName) then
    begin
      if not Assigned(frmMsg) then
        frmMsg := TfrmMsg.Create(Application);
      frmMsg.reMsg.Lines.LoadFromFile(ifImpFile.LogFileName);
      frmMsg.Show;
    end;
  finally
    OraDsFields.Close;
    ifImpFile.Free;
  end;
end;

procedure TfrmDBTxtImp.rxmtblFieldsIGNORE_COUTEGetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  if Sender.AsString = '0' then
    Text := '否'
  else if Sender.AsString = '1' then
    Text := '是'
  else
    Text := Sender.AsString;
end;

procedure TfrmDBTxtImp.rxmtblFieldsIGNORE_COUTESetText(Sender: TField;
  const Text: String);
begin
  if (Text = '1') or (Text = 't') or (Text = 'T') or (Text = '是') then
    Sender.AsString := '1'
  else
    Sender.AsString := '0'
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
经典三级视频一区| 日韩国产在线一| 欧美一区二区视频在线观看 | 国产精品第一页第二页第三页| 日本国产一区二区| 黑人精品欧美一区二区蜜桃| 亚洲理论在线观看| 国产日产欧美一区二区三区| 51精品视频一区二区三区| 成人高清在线视频| 免费成人在线观看视频| 尤物视频一区二区| 国产日韩精品视频一区| 日韩一区二区三区在线视频| 色婷婷av一区二区三区大白胸| 国产精品中文字幕日韩精品 | 日韩视频免费观看高清在线视频| 国产一区二区视频在线播放| 亚洲一本大道在线| 中文字幕av资源一区| 欧美一级久久久久久久大片| 日本伦理一区二区| 波多野结衣中文字幕一区二区三区 | 精品日韩在线观看| 欧美午夜片在线观看| 99视频有精品| 成人免费高清在线观看| 国内精品伊人久久久久av一坑 | 国产精品视频观看| www久久久久| 日韩欧美一级片| 91精品国模一区二区三区| 日韩精品欧美成人高清一区二区| 国产精品天天看| 欧美电影免费观看高清完整版在线| 欧美日韩二区三区| 欧美三级在线播放| 欧美在线制服丝袜| 91福利视频久久久久| 色综合久久九月婷婷色综合| 97se亚洲国产综合自在线不卡| 成人午夜av电影| 成人免费观看视频| av亚洲产国偷v产偷v自拍| 懂色中文一区二区在线播放| 成人自拍视频在线观看| 成人免费黄色在线| www.99精品| 一本久久精品一区二区| 91久久国产最好的精华液| 欧洲视频一区二区| 欧美人与z0zoxxxx视频| 91精品免费观看| 欧美不卡一二三| 午夜精品在线看| 欧美日韩一区二区三区视频| 在线观看av一区二区| 色婷婷综合在线| 欧美日韩亚洲丝袜制服| 欧美丰满少妇xxxbbb| 欧美v亚洲v综合ⅴ国产v| 精品久久久久一区| 亚洲国产精品精华液2区45| 国产精品伦理一区二区| 一区二区中文字幕在线| 一区二区三区蜜桃| 日韩中文字幕91| 国产在线精品一区二区三区不卡| 国产精品一区二区久久精品爱涩 | 色狠狠综合天天综合综合| 欧美无乱码久久久免费午夜一区| 在线播放/欧美激情| 精品免费99久久| 国产精品色婷婷| 亚洲综合色视频| 久久成人麻豆午夜电影| 岛国一区二区三区| 精品免费国产二区三区| 懂色av一区二区三区免费看| 91视视频在线观看入口直接观看www | 国产亚洲欧洲997久久综合| 欧美国产精品专区| 亚洲高清免费观看高清完整版在线观看| 日韩精品成人一区二区三区| 国产乱码精品一区二区三区av | 91精品国产综合久久小美女| 国产亚洲欧美在线| 亚洲一区二区三区自拍| 国精产品一区一区三区mba视频| av一区二区不卡| 欧美群妇大交群中文字幕| 久久久99久久精品欧美| 美女网站色91| 99久久99久久久精品齐齐| 色94色欧美sute亚洲线路一ni | 精品少妇一区二区三区| 中文文精品字幕一区二区| 亚洲国产精品一区二区久久| 国产精品99久久久久久久vr| 欧美在线观看一区| 亚洲国产成人私人影院tom| 亚洲va天堂va国产va久| 成人av资源站| 日韩精品资源二区在线| 一区二区在线免费| 懂色av一区二区在线播放| 欧美一级在线视频| 一区二区三区四区亚洲| 粉嫩一区二区三区性色av| 日韩欧美一区二区不卡| 亚洲国产成人av好男人在线观看| 岛国精品在线观看| 久久久噜噜噜久噜久久综合| 日韩精品国产欧美| 在线视频欧美区| 国产精品久久久久aaaa樱花| 国产在线不卡一区| 91精品国产麻豆国产自产在线| 亚洲靠逼com| 久久99精品国产.久久久久| 欧美日韩在线一区二区| 国产精品传媒入口麻豆| 国产一区二区三区在线观看免费视频| 欧美日本免费一区二区三区| 国产精品动漫网站| 欧美videofree性高清杂交| 午夜精品福利在线| 欧美性欧美巨大黑白大战| 最新国产成人在线观看| 成人网页在线观看| 国产精品伦理一区二区| 成人免费视频播放| 欧美国产日本韩| 北条麻妃国产九九精品视频| 国产日韩欧美麻豆| 国产精品18久久久久久久久 | 99国产精品99久久久久久| 亚洲国产精品激情在线观看| 国产成a人亚洲精品| 国产欧美一区二区三区沐欲| 国产大陆精品国产| 国产清纯美女被跳蛋高潮一区二区久久w | 国产精品亚洲一区二区三区在线| 亚洲精品一区二区精华| 韩国精品久久久| 久久久综合激的五月天| 国产精品18久久久| 中文字幕不卡在线| 色综合久久六月婷婷中文字幕| 亚洲综合自拍偷拍| 欧美日韩亚洲另类| 老司机精品视频一区二区三区| 精品国产一区二区国模嫣然| 国产综合久久久久久鬼色 | 欧美电视剧在线看免费| 麻豆成人久久精品二区三区红| 午夜天堂影视香蕉久久| 欧美一区二区精美| 韩国成人福利片在线播放| 中文字幕免费不卡在线| 色香蕉久久蜜桃| 午夜精品福利在线| 精品国产乱码久久久久久久久 | 欧美精品久久一区二区三区| 日韩黄色在线观看| 久久综合资源网| 成a人片亚洲日本久久| 亚洲二区视频在线| 日韩免费观看高清完整版在线观看| 久久66热偷产精品| 国产精品久久久一本精品| 91福利视频在线| 久久99国产精品麻豆| 国产精品毛片a∨一区二区三区| 91成人免费电影| 久久国产尿小便嘘嘘| 中文字幕av一区二区三区高| 欧美性猛交xxxx黑人交| 精品综合免费视频观看| 日韩毛片一二三区| 日韩丝袜美女视频| www.亚洲国产| 蜜臀a∨国产成人精品| 国产精品久久99| 欧美一级爆毛片| 99精品欧美一区二区三区综合在线| 丝袜国产日韩另类美女| 中文字幕乱码一区二区免费| 欧美二区三区91| av一区二区三区四区| 免费不卡在线视频| 亚洲美女在线国产| 欧美成人r级一区二区三区| 91丝袜高跟美女视频| 精品一区中文字幕| 亚洲午夜久久久久久久久电影网| 国产日韩精品视频一区| 亚洲国产欧美在线| 国产成人免费视频网站| 亚洲国产成人精品视频|