dbExpress



  • hi, ich versuche gerade die funktion Execute des TSQLConnection moduls zu verwenden.

    definiert ist sie so...

    int __fastcall Execute(const WideString SQL, Db::TParams* Params, void * ResultSet = (void *)(0x0));
    

    nur verstehen tu ich jetzt nicht was ich als letzten parameter rein soll OO



  • also bei den ersten beiden denk ich zumindest mal das es die query und die parameter die zurückkommen sind



  • Params sind eher die Parameter die übergeben werden, ResultSet ist - wie das englische Wort schon sagt - das Ergebnis. In diesem Fall das Ergebnisdataset, aber das steht alles in der BCB-Hilfe einschließlich einem Beispiel.



  • eben nicht oO zu db express gibts beim 2007er garnix.. außer vielleicht. einer erklärung wie mans ober den objektinspektor konfiguriert ....



  • BCB6-Hilfe schrieb:

    Die Methode Execute führt auf dem Server eine SQL-Anweisung aus.

    *int __fastcall Execute(const AnsiString SQL, TParams Params, void ResultSet = NULL);

    Beschreibung

    Mit Execute können Sie auf dem Server eine bestimmte Anweisung ausführen, ohne dafür eine SQL-Datenmenge zu benötigen. Die Methode eignet sich besonders für Anweisungen, die keine Ergebnismenge zurückgeben (z.B. Anweisungen in einer Datendefinitionssprache).

    SQL ist die auszuführende Anweisung.

    Params ist ein TParams-Objekt, das alle von der Anweisung verwendeten Parameter enthält. Da die Parameterbindung nicht über den Namen, sondern über den Index stattfindet, ist die Reihenfolge der Parameter von Bedeutung. Die Reihenfolge der TParam-Objekte in Params entspricht der Reihenfolge der Parameter in der SQL-Anweisung. Mit den Eigenschaften und Methoden von TParams können Sie TParams-Objekte erstellen, für jeden Parameter ein solches Objekt hinzufügen und Parametereigenschaften wie den Datentyp und den Wert festlegen. Bei einer SQL-Anweisung ohne Parameter übergeben Sie für Params den Wert NULL.

    ResultSet ist ein Zeiger auf eine Variable vom Typ TCustomSQLDataSet. Wenn die SQL-Anweisung einen Cursor zurückgibt, erstellt Execute eine neue TCustomSQLDataSet-Instanz und weist ihr die Ergebnismenge zu. Auf diese TCustomSQLDataSet-Instanz zeigt der Parameter ResultSet. Wenn die SQL-Anweisung keine Ergebnismenge zurückgibt, übergeben Sie für ResultSet den Wert NULL.

    Execute gibt die Anzahl der Datensätze zurück, auf die mit der SQL-Anweisung zugegriffen wurde.

    Tip: Verwenden Sie für SQL-Anweisungen ohne Parameter die Methode ExecuteDirect.

    Beispiel:
    Im folgenden Beispiel wird eine INSERT-Anweisung mit einem einzelnen Parameter namens StateParam ausgeführt. Ein TParams-Objekt namens stmtParams wird zur Bereitstellung des Wertes "CA" für diesen Parameter erstellt.

    void __fastcall TForm1::InsertWithParamsButtonClick(TObject *Sender)
    {
    TParams *stmtParams = new TParams;
    try
    {
    AnsiString SQLstmt;
    SQLConnection1->Connected = true;
    stmtParams->CreateParam(ftString, "StateParam", ptInput);
    stmtParams->ParamByName("StateParam")->AsString = "CA";
    SQLstmt = "INSERT INTO 'Custom.db' ";
    SQLstmt += "(CustNo, Company, State) ";
    SQLstmt += "VALUES (7777, 'Robin Dabank Consulting', :StateParam)";

    SQLConnection1->Execute(SQLstmt, stmtParams, NULL);
    }
    __finally
    {
    delete stmtParams;
    }
    }


Anmelden zum Antworten