SQL INSERT über 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: SQL INSERT über Makro

Re: SQL INSERT über Makro

von Karolus » Di, 01.02.2011 10:36

Hallo
Ich würde mal den Namen der Datenbank überprüfen, könnte sein das die nicht '...dbname' heißt.

Karo

Re: SQL INSERT über Makro

von MHage » Di, 01.02.2011 09:39

Hallo,

ich habe den Code-Fetzen mal bereinigt... sieht gleich viel besser aus :D

Aber irgendwo scheint noch ein Fehler zu sein. Ich stell ihn nochmal ein.

Code: Alles auswählen

Sub SchreibeDB
   
   ' Variable deklarieren
	Dim DatabaseContext As Object
 	Dim DataSource As Object
	Dim Connection As Object
	Dim Statement as Object
	Dim Sql As String
   
	DatabaseContext=CreateUnoService("com.sun.star.sdb.DatabaseContext")			' Datenbank-Kontext holen
	DataSource=DatabaseContext.getbyname("192.168.100.2/dbname")			' Datenquelle holen
	If not Datasource.ispasswordrequired then
	Connection=Datasource.getConnection("","")			' Verbindung erstellen
	else
	Connection=Datasource.getConnection("benutzername","passwort")
	End If
   
	Statement = Connection.createStatement()            		' Statement erzeugen
	' ID - Mitglieds_Nr - Konto_Inhaber - Zahldatum - Verwendungszweck - Betrag
	' Datensatz erzeugen, in DB schreiben mit SQL einfügen
	Sql = "INSERT INTO ""Beitragszahlungen"" (""Mitglieds_Nr"", ""Konto_Inhaber"", ""Zahldatum"", ""Verwendungszweck"", ""Betrag"") VALUES('"+sSender_Mitglied_Nr+"', '"+sSender_Name+"', '"+sVerein_Datum+"', '"+sVerein_Verwendung1+"', '"+sSender_Betrag+"')"
	SQL_Anweisung.executeUpdate (Sql)
	Statement.close()      ' Verbindung und Statement schliessen
End Sub
Die Fehlermeldung:

Bild

Gruß
Matze

Re: SQL INSERT über Makro

von gogo » Di, 01.02.2011 00:40

Schau Dir mal den Editor an, im Besonderen die Farben nach dem 'VALUES'. Mit Copy-paste Deines Statements ist der String nämlich bei mir beim ersten Hochkomma zu Ende...

Schreib' mal die ganze SQL-Definition in eine Zeile!

Wenn's im Editor so aussieht:
Sql = "INSERT INTO ""Beitragszahlungen"" (""Mitglieds_Nr"", ""Konto_Inhaber"", ""Zahldatum"", ""Verwendungszweck"", ""Betrag"") VALUES ('"+sSender_Mitglied_Nr+"', '"+sSender_Name+"', '"+sVerein_Datum+"', '"+sVerein_Verwendung1+"', '"+sSender_Betrag+"')"

Sollte das Statement funktionieren.

Unter der Definition von SQL mal ein:

Code: Alles auswählen

msgbox Sql
einfügen, dann kannst Du Dir den String mal ansehen wenn er fertig ist.

g

SQL INSERT über Makro

von MHage » Mo, 31.01.2011 22:41

Hallo,

ich versuche einen Datensatz in eine MySQL Tabelle zu schreiben. Ich suche jetzt schon zwei Tage und finde einfach den Fehler nicht.
Ich bekomme im Moment einen Syntx Fehler im Query. Ich poste mal den Teil. Vielleicht kann ja jemand helfen....

Code: Alles auswählen

Sub SchreibeDB
	
   ' Variable deklarieren
   Dim oDatenbankKontext as Object
   Dim oDatenquelle as Object
   Dim oVerbindung as Object
   Dim oStatement as Object
   Dim Sql As String
   ' Datenbank-Kontext holen
   oDatenbankKontext = createUnoService _
      ( "com.sun.star.sdb.DatabaseContext" )
   
   ' Datenquelle holen
   oDatenquelle = oDatenbankKontext._
   getByName( dbname )
			
			' ID - Mitglieds_Nr - Konto_Inhaber - Zahldatum - Verwendungszweck - Betrag
	  
   oVerbindung = oDatenquelle.getConnection( "", "" )		' Verbindung erstellen
   oStatement = oVerbindung.createStatement()				' Statement erzeugen
			' Datensatz erzeugen
		  	' in DB schreiben mit SQLle einfügen
			Sql = "INSERT INTO ""Beitragszahlungen"" (""Mitglieds_Nr"", ""Konto_Inhaber"", ""Zahldatum"", ""Verwendungszweck"", ""Betrag"")
			VALUES	('"+sSender_Mitglied_Nr+"', '"+sSender_Name+"', '"+sVerein_Datum+"', '"+sVerein_Verwendung1+"', '"+sSender_Betrag+"')"
			SQL_Anweisung.executeUpdate (Sql)
   oStatement.close()		' Verbindung und Statement schliessen
End Sub

Habe leider noch nicht viel Ahnung von der Materie...

Gruß
Matze

Nach oben