Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

hoi ich hab folgende abfrage

UPDATE REGEL20, TEXTE SET REGEL20.PA_INFO = '%s'WHERE ((StrComp(REGEL20.PA_INFO,TEXTE.TEX_AUSGABE,0)<>0 And REGEL20.PA_INFO_TEXTNR=TEXTE.TEX_NUMMER And TEXTE.TEX_SPRACHE='deu'));" %(string3))

leider is die so noch nicht ganz komplett

da fehlt noch eine AND anweisung und das sollte meines erachtens dann so aussehen:

UPDATE REGEL20, TEXTE SET REGEL20.PA_INFO = '%s'WHERE ((StrComp(REGEL20.PA_INFO,TEXTE.TEX_AUSGABE,0)<>0 And REGEL20.PA_INFO_TEXTNR=TEXTE.TEX_NUMMER And TEXTE.TEX_SPRACHE='deu') AND '%s' NOT LIKE '%temp%');" %(string3,string3))

leider bekomm ich dann diesen fehler:

Bad format specifier at Position 190 (%temp%');)

was is daran jetzt falsch ?

Geschrieben

ganz einfach: temp ist kein formatstring - wäre mir als formatstring auch neu.

du musst schon formatstrings verwenden, die es auch gibt, wie beispielsweise, %s, %u, %i, %d, %c. das sollte aber im manual genauer angegeben sein.

s'Amstel

Geschrieben
ich dachte mit dem LIKE und '%irgendwas%' kann ich die wörter bekommen die *irgendwas* drin stehen haben ?! also die % als platzhalter ?!

Der Platzhalter '%' steht im Standard-SQL meines Wissens für genau 1 Zeichen. Der Platzhalter '*' kann für mehr als 1 Zeichen verwendet werden. Falls jemand andere Infos darüber hat, lass ich mich gerne belehren.

Grüße von ipu

Geschrieben

und wieso sagt mir dann dieses Tutorial

tutorial7da.jpg

was anderes ? :beagolisc

im bezug auf das mit dem 1 Zeichen und dem "temp ist kein formatstring" ?

%H% ist auch kein Format string ;)

Geschrieben

jo war ja kein vorwurf oder so :beagolisc

aber was meinst amstelchen denn dann mit dem formatstring? in dem beispiel isses doch ganz deutlich so geschildert mit den % als Platzhalter

Geschrieben

'%s' NOT LIKE '%temp%'

Was soll den %s sein?

Du vergleichst einen statischen String mit einem anderem. IMHO sollte da statt %s ein Feldname stehen oder was willst du mit dem AND bezwecken?

Geschrieben

ja %s steht für einen statischen string der hinten dran auch angehängt ist %(string3) falls du das gesehen hast und mit %temp% will ich diesen string auf die zeichenfolge *temp* untersuchen. and was meinst du mit "was willst du mit dem AND bezwecken" ?

edit: habs schon hinbekommen - wenn auch über 2 ecken, aber funktioniert

Geschrieben

leider bekomm ich dann diesen fehler:

Bad format specifier at Position 190 (%temp%');)

was is daran jetzt falsch ?

Du benutzt zum Einfügen der Strings eine Formatfunktion. Mit dieser Formatfunktion weren Platzhalter in deinem String ersetzt. Diese Platzhalter sind im Formatstring mit %x angegeben (wobei x für einen "format specifier" steht).

Die Formatfunktion kennt einige dieser Specifier (z.B. %s für Strings), was sie aber nicht kennt ist ein "format specifier" %temp oder % ohne was. Das sagt dir diese Fehlermeldung.

% kann man als Literal angeben, wenn man %% schreibt AFAIK, oder probier es mal, indem du %temp% auch per Format übergibst. Also so ung:


... AND '%s' NOT LIKE '%s');" %(string3,string3,%temp%))

EDIT:

Ist somit eigentlich kein SQL-Fehler und hat bei Datenbanken nichts zu suchen :D

Geschrieben
ja %s steht für einen statischen string der hinten dran auch angehängt ist %(string3) falls du das gesehen hast und mit %temp% will ich diesen string auf die zeichenfolge *temp* untersuchen. and was meinst du mit "was willst du mit dem AND bezwecken" ?

Sorry, mein Fehler. Ich hatte das %(string3)... zwar gesehen, aber für mich war die Anweisung nach dem ; fertig. :rolleyes: Ich kannte das in der Form nicht aus SQL-Anweisungen

Geschrieben
hab das ganze nun bissel anders gelöst, aber danke für die hilfe :D

Würdest du die andere Lösung hier bitte präsentieren? Dann hätten alle was davon.

Grüße von ipu

Geschrieben

ich hatte nach einem falschen feld gesucht, nachdem ich das gemerkt hatte hab ich das NOT LIKE nicht mehr gebraucht, ist nun ein stinknormales SQL Query, hätte also wenig sinn das reinzustellen :beagolisc

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...