Problem mit Parametern bei TQuery



  • Hi,

    ich hab folgendes Problem
    wie kann ich folgende abfrage am besten implementieren?:

    SELECT a FROM x WHERE y IN (1,2,3)
    

    also bis jetzt habe ich manuell den string "1,2,3" zusammengesetzt und den dann als parameter übergeben
    -> problem: er gibt automatisch " am anfang und ende aus, da es ja ein string ist...

    wie kann ich das umgehen oder anders wie machen, da ich ja nicht weiß wie viele nummern ich brauche?



  • bisschen mehr info wär schon auch gut... wo kommen denn die werte her?
    werden die eingegeben?

    ne for - schleife reicht nich?



  • Errraddicator schrieb:

    -> problem: er gibt automatisch " am anfang und ende aus, da es ja ein string ist...

    Das wäre mir dann allerdings neu... Normalerweise muss man die Anführungszeichen explizit in den Select einfügen, respektive QuotedString() verwenden.



  • mein select sieht ja auch so aus:

    SELECT a FROM b WHERE c IN (:d)
    //...
    ParamByName = string
    

    und beim umsetzen von :d macht er automatisch die " am anfang und ende.
    das ist das problem, zumindest sagt das die Fehlermeldung

    ... blablabla
    Wert "1, 2, 3" kann nicht in Integer umgewandelt werden
    ... blablabla

    hab mich wohl doof ausgedrückt...

    zur not muss ich halt das komplette kommando als string zusammensetzen, dann wäre das problem ja nicht



  • das kommt weil du es als String übergibst (ParamByName macht das automatisch)
    Ich denke ParamByName eignet sich dafür nicht... das einfachste wär wenn du den string wohl selbst zusammenbaust...



  • hab ich jetzt auch gemacht, hätte ja nur sein können dass das irgendwie eleganter (also über parameter) geht...


Anmelden zum Antworten