sql >> データベース >  >> RDS >> Mysql

Delphi-解放された後でもMySQLにプロセスを残すTSQLQuery

    接続を何度も再作成したり、クエリを再作成したりしないでください。クエリにパラメータを使用します。接続を1回開き、クエリのパラメータを入力して実行し、クエリを閉じて(接続は除く)、クエリパラメータを再度入力して、もう一度実行します。

    このようなもの(Advantage Database Serverを使用しますが、概念は同じです):

    // Both Create() calls should be followed by try..finally to ensure they're 
    // cleaned up after. Omitted for brevity.
    Conn := TAdsConnection.Create(nil);
    // Configure connection parameters here
    Conn.Open;
    
    Qry := TAdsQuery.Create(nil);
    Qry.AdsConnection := Conn;
    Qry.SQL.Add('INSERT INTO SOMETABLE (COL1, COL2, COL3)');
    Qry.SQL.Add('VALUES (:COL1, :COL2, :COL3)');
    while not OtherTable.Eof do
    begin
      Qry.ParamByName('COL1').AsInteger := OtherTable.FieldByName('COL1').AsInteger;
      Qry.ParamByName('COL2').AsString := OtherTable.FieldByName('COL2').AsString;
      Qry.ParamByName('COL3').AsDateTime := OtherTable.FieldByName('COL3').AsDateTime;
      Qry.ExecSQL;
      Qry.Close;
      OtherTable.Next;
    end;
    // Free query
    Conn.Close;
    // Free connection.
    


    1. Mysqlテーブル名をconcatで名前変更

    2. MySQLデータベースの異なるフィールドの2つの数値の間に数値があるかどうかを確認します

    3. 無効なOracleURLが指定されました:OracleDataSource.makeURL

    4. IF条件を使用したMySQLUPDATE