Abfrage funktioniert nicht aus Makro?

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Abfrage funktioniert nicht aus Makro?

Re: Abfrage funktioniert nicht aus Makro?

von Steffan » Di, 07.10.2008 15:58

Hallo komma4,

habe gerade von mySQL-ODBC-Treiber Version 3.5.1 auf Version 5.1 aktualisiert: Das Ergebnis ist das gleiche: Gleiche Fehlermeldung an der selben Stelle im Code.

Steffan

Re: Abfrage funktioniert nicht aus Makro?

von komma4 » Di, 07.10.2008 14:02

Steffan hat geschrieben:mit einer SQLException : [Microsoft] [ODBC Driver Manager] Ungültige Zeichenfolgen- oder Pufferlänge.[/[uote]
Das mag an anderer Stelle geklappt haben, mit diesem Datensatz hat der Treiber Probleme. Ergo: Treiber wechseln

Re: Abfrage funktioniert nicht aus Makro?

von Steffan » Di, 07.10.2008 13:58

Hallo,

erst mal vielen Dank für Eure Antworten:

@pmoegenb:
Wie gesagt die Variable übergebe ich vorher im Makrocode sodass mein Abbfragestring dann z,B.

Code: Alles auswählen

sQuery="SELECT company1, family_name FROM addresses WHERE address_ID=211"
heisst, was eigentlich klappt.

@komma4:
Das ganze funktioniert an anderen Stellen im Projekt reibungslos (auch für die gleiche DB und Tabelle), also ich denke am ODBC-Tereiber kann es eigentlich nicht liegen.

Immer noch ratlos,
Steffan

Re: Abfrage funktioniert nicht aus Makro?

von komma4 » Di, 07.10.2008 11:28

Doch, Peter, das geht:

Code: Alles auswählen

sQuery = "SELECT company1, family_name FROM addresses WHERE address_ID=" & cstr(iSelAdrID)
Die Fehlermeldung deutet eher auf einen nicht korrekten ODBC-Treiber hin.

Steffan: kannst Du den Treiber wechseln? Updaten?

Re: Abfrage funktioniert nicht aus Makro?

von pmoegenb » Di, 07.10.2008 11:15

Hallo Steffan,

die Syntax des SQL-Befehls kann so nicht gehen. Du kannst Inhalte von Variablen nur als Parameter übergeben.

Beispiel:

Code: Alles auswählen

SELECT company1, family_name FROM addresses WHERE address_ID=:Param
Wie Du allerdings in Basic den Parameter übergeben kannst, weiß ich nicht. In Basic kenn ich mich nicht aus. Wenn Du diesen SQL-Befehl als Abfrage ausführst, öffnet sich ein Fenster in dem der Inhalt von :Param abgefragt wird.

Abfrage funktioniert nicht aus Makro?

von Steffan » Di, 07.10.2008 10:46

Hallo zusammen,

folgendes Problem habe ich schonmal im Basic-Forum gepostet, mich aber dort darauf konzentriert, dass im Einzeldurchlauf des Makros (F8) ein Fehler in einer leeren Zeile auftaucht. Dies ist mir mittlerweile in verschiedenen Makros passiert und die Fehlermeldung bezog sich immer auf die kommende Zeile (ein Bug in OO?).
Aber damit kriege ich das Abfrageproblem nicht gelöst. Der Code

Code: Alles auswählen

private sub loadContactFromDB
	if oConn is nothing then makeConnecion
	iSelAdrID=getSelected(true)
	
	sQuery="SELECT company1, family_name FROM addresses WHERE address_ID=" & cstr(iSelAdrID)

	oStat2=oConn.CreateStatement()
	oRes2=oStat2.executeQuery(sQuerry)
	While oRes.Next
		sAdr1=oRes.Columns(1).getString
		sAdr2=oRes.Columns(2).getString
		sAdr=iif(sAdr1<>"", sAdr1 & "; ","")
		sAdr=sAdr & sAdr2
	wend
	
	oDia.getControl("txtTo").Text=sAdr
end Sub
hängt vor der Zeile [

Code: Alles auswählen

Stat2=oConn.CreateStatement()
mit einer SQLException : [Microsoft] [ODBC Driver Manager] Ungültige Zeichenfolgen- oder Pufferlänge.

Die (für mich) offensichtliche Dinge habe ich schon ausgeschlossen:
  • Verbindung zur DB steht
  • Variable 'iSelAdrID' hat einen gültigen Wert
    [[]es gibt das gewünschte Ergebnis, wenn ich den Text von 'sQuery' kopiere und damit eine Abfrage in Base auf die Datenbank erstelle[
    Hat jemand von Euch eine Idee oder einen Tip?
    Steffan

    Nach oben