乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Delphi – 在運行時創(chuàng)建MySQL數(shù)據(jù)庫

       印度阿三17 2019-06-25

      我有一個連接到MySQL數(shù)據(jù)庫的delphi應(yīng)用程序,但是,我想為我的最終用戶創(chuàng)建一個簡單的方法來實現(xiàn)MySQL數(shù)據(jù)庫.我想在我的應(yīng)用程序中創(chuàng)建一個按鈕,用戶可以按這個按鈕刪除當前的scehma實例,并使用我的應(yīng)用程序需要運行的正確表和列創(chuàng)建一個新模式.

      我編寫了代碼來創(chuàng)建新數(shù)據(jù)庫.它如下:

      CREATE SCHEMA IF NOT EXISTS fakeschema;   
      USE fakeschema;  
      CREATE TABLE table1  
      (IDtable1 int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,  
      Line1 varchar(45),  
      Line2 varchar(45));  
      

      代碼在MySQL中正常運行,但是在執(zhí)行代碼時我收到SQL語法錯誤.我得到了:

      error in your SQL syntax near ‘USE fakeschema; CREATE TABLE table1 (IDtable1 int(11) PRIMARY KEY NO’

      我正在使用ADOConnection鏈接到數(shù)據(jù)源.按下按鈕后,我正在編寫連接字符串.我正在使用ADOQuery來執(zhí)行SQL代碼.

      這是我用來連接數(shù)據(jù)庫的代碼片段:

      ADOC.ConnectionString := 'PROVIDER = MSDASQL; DRIVER={MySQL ODBC 3.51 Driver};
      SERVER=localhost; Data Source=faketest; DATABASE=fakeschema; USER ID=root;
      PASSWORD=pass; OPTION=3;';
      ADOC.DefaultDatabase := 'fakeschema';  
      ADOC.Connected := True;  
      

      我使用錯誤的工具/方法嗎?我是MySQL新手,我目前正在學(xué)習(xí)Delphi.

      解決方法:

      正如我的一條評論中所提到的,問題是嘗試在單個TAdoQuery組件中執(zhí)行多個單獨的SQL語句.

      在一個理想的世界中,你會有一個像MyDAC這樣的組件,它有一個腳本組件可以代替TAdoQuery使用(MyDAC會給你帶來其他好處,比如不必通過ODBC連接).我不知道是否有任何免費的MySQL組件,其中有一個腳本組件.

      另一種方法是您可以創(chuàng)建腳本文件(例如createFakeSchema.sql)并通過命令行執(zhí)行它.例如:

      createFakeSchema.sql:

      CREATE SCHEMA IF NOT EXISTS fakeschema;   
      USE fakeschema;  
      CREATE TABLE table1  
      (IDtable1 int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,  
      Line1 varchar(45),  
      Line2 varchar(45));
      

      示例源代碼:

      procedure TfrmMain.DoExecuteScriptFile;
      var
        cmd: string;
        KeepOpen: Boolean;
      begin
        KeepOpen := True;
      
        // option to automatically close window once execution is done
        // for releasing you would not want it kept open, but handy for debugging
        if KeepOpen then
          cmd := '/k '
        else
          cmd := '/c ';
      
        cmd := cmd   Format(' mysql -uroot -proot -D%s < "%s"', ['FakeSchema', 'createFakeSchema.sql']);
        ShellExecute(handle,'open', 'cmd.exe', Pchar(cmd), nil, SW_SHOW );
      end;
      

      這樣你就可以在某處外部創(chuàng)建你的腳本文件,自己通過MySQL測試它,然后當你知道你的腳本工作時,你可以通過你的程序運行它.如果要在執(zhí)行時隱藏命令窗口,請將ShellExecute中的SW_SHOW更改為SW_HIDE.這樣你甚至根本不需要任何組件 – 只需在路徑中訪問mysql.exe或在cmd語句中包含完整路徑即可.

      這是在MySQL 5.1中完成的,所以希望適用于3.5 …

      來源:https://www./content-2-266251.html

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多