SQL-String liefert Fehlermeldung abhängig von Variablennamen(?)

Antwort erstellen


Um automatische Eingaben zu unterbinden, musst du die nachfolgende Aufgabe lösen.

BBCode ist eingeschaltet
[img] ist ausgeschaltet
[flash] ist ausgeschaltet
[url] ist eingeschaltet
Smilies sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: SQL-String liefert Fehlermeldung abhängig von Variablennamen(?)

SQL-String liefert Fehlermeldung abhängig von Variablennamen(?)

von Stephan » Mi, 04.10.2017 08:38

Hallo,

in einem Basic Modul steht im Kopf (also außerhalb einer Sub) folgende Deklaration:

Code: Alles auswählen

Dim tmp, tmp1, tmp2
innerhalb eines Makros desselben Moduls wird folgender Code ausgeführt:

Code: Alles auswählen

	With dia_adresse.Model
		akt_firma = .getByName("cmb_db_firma").Text
		akt_abteilung = .getByName("cmb_db_abteilung").Text
		akt_strasse  .getByName("txt_strasse").Text
		akt_plz .getByName("txt_plz").Text
		akt_ort .getByName("txt_ort").Text
	End With

	oBaseContext = CreateUnoService("com.sun.star.sdb.DatabaseContext")
	oDataSource = oBaseContext.getByName(DB_name) 'DB_name, siehe Modul "_info"
	oCon = oDataSource.getConnection(sUser, sPassword)
	
	oStatement = oCon.createStatement()

	tmp1 = "INSERT INTO ""Firma"" (""Firmenname"", ""Abteilung"") VALUES ('"+akt_firma+"','"+akt_abteilung+"')"

	oStatement.executeUpdate(tmp1)	
	
	oCon.close()
dabei resultiert die FEhlermeldung "BASIC-Laufzeitfehler. Objektvariable nicht belegt." in Zeile:

Code: Alles auswählen

tmp1 = "INSERT INTO ""Firma"" (""Firmenname"", ""Abteilung"") VALUES ('"+akt_firma+"','"+akt_abteilung+"')"
Ändere ich in:

Code: Alles auswählen

Dim sqlSM
sqlSM = "INSERT INTO ""Firma"" (""Firmenname"", ""Abteilung"") VALUES ('"+akt_firma+"','"+akt_abteilung+"')"

oStatement.executeUpdate(sqlSM)
Funktioniert alles einwandfrei.

Beobachtet in LO 5.1.6.2.


Hat jemand eine Erklärung für dieses Verhalten?
Falls es keine Erklärung gibt, ist das beschriebene Verhalten zumindest bekannt?



(Mich hat das gerade über eine Stunde Zeit gekostet, weil ich die ganze Zeit glaubte der SQL-Ausdruck hätte einen inhaltlichen Fehler. Das hingegen der Meldetext der Fehlermeldung inhaltlich falsch war (=es konnte an dieser Stelle nicht an einer unbelegten Objektvariable liegen), war mir sofort klar, nur dieserart Unregelmäßigkeiten ist man ja von OO/LO leider gewohnt.)



Gruß
Stephan

Nach oben