Problem mit Query und Params



  • Hi,
    Suchfunktion hat nichts ergeben -> Frage:

    Ich habe eine Personendaten-DB und verschiedene andere BDs. Diese sind immer über die "ID_PERSONENDATEN" verbunden. Damit ich nicht immer z.B. im AfterScroll-Event alle anderen DBs aktualisieren muss ("select * .... where ID_PERSONENDATEN = " + DBEdit_Personenid->Text) habe ich gedacht, das geht bestimmt auch mit Params. Ich habe dazu auch ein Beispiel im BCC gefunden. Jetzt nur zwei Dinge:
    - Wenn ich Params öffne, kann ich keine neuen anlegen (nur grau)
    - Im Beispiel habe ich gesehen, wie so ein Param aussehen muss (A%, String). Woher weiß der BCC aber, auf welches Feld sich das bezieht?

    Danke für eure Antworten!

    strauberry



  • Arbeitet keiner mit Params? Wenn nicht, wieso?



  • Hallo strauberry,

    du musst die Parameter dynamisch füllen.

    TQuery *query = new TQuery(Application) ;
        query->SQL->Add("SELECT * FROM DB WHERE Name LIKE '%' + :Name + '%'");
        query->Params->Items[0]->AsString = sName;
        query->Open();
      delete query;
    

    Gruß Skay



  • Hi,

    wo muss der Code denn rein? Und wie lege ich das Datenbankfeld fest, aus dem der Parameter kommt? Vielleicht Code kommentieren, wäre riesenklasse 🙂

    Danke schonmal!!



  • Hallo strauberry,

    den Code will ich nicht kommentieren, da das die Borland Builder Hilfe bereits mehr als genug macht. Schau doch einfach mal rein, dann werden sich bestimmt fast alle Probleme klären ...

    Die Datenbank legst du mit

    query->DatabaseName = "NameDerDatenbank";
    

    fest.

    Gruß Skay



  • Danke für die Hilfe.

    Wenn ich es in der Hilfe gefunden hätte, hätte ich nicht gefragt, aber egal... man muss wohl in jede Antwort reinschreiben "Schau in die Hilfe, da stehts"...



  • So, bin jetzt einen Schritt weiter. Nur noch ein kleiner Fehler:

    Das SQL-Statement des Querys sieht so aus:
    SELECT * FROM DATENBANK1 WHERE ID_PERSONENDATEN = 14

    __fastcall TForm_MainForm::TForm_MainForm(TComponent* Owner)
            : TForm(Owner) {
    
    TParam *newParam = Query_Medikamente->Params->CreateParam(ftSmallint, "ID_PERSONENDATEN", ptOutput);
       newParam->AsInteger = 14;
    
    }
    

    EDBDEngineError 'Could not find object.' Wieso?

    Danke!!!!

    grüsse strauberry


Anmelden zum Antworten