SQL Befehl INSERT INTO mit Variablen

Für allgemeine Fragen zur Programmierung mit PureBasic.
JKG
Beiträge: 69
Registriert: 02.01.2005 11:53

SQL Befehl INSERT INTO mit Variablen

Beitrag von JKG »

Hallo ! :oops:

Ich bekomme es einfach nicht hin einem SQL-Befehl Variablen zu übergeben. Ich möchte einen Satz in einer MS-SQL Datenbank einfügen.

Code: Alles auswählen

RetVal$ = "INSERT INTO MeineDatenbank VALUES (JetztsollenVariablen kommen)"
Das klappt leider nicht. Hab hier im Forum das ein oder andere gelesen, komme da aber nicht klar draus.

Danke schonmal für die Hilfe.

Gruß Jörg
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Hab zwar keine Ahnung von SQL, aber wenn ich das richtig verstanden habe, meinst du in etwa so:

Code: Alles auswählen

RetVal$ = "INSERT INTO MeineDatenbank VALUES " + Str(MeineVariable) 
[EDIT]Da muß glaube ich noch ein ";" ans Ende angehängt werden [/EDIT]
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
JKG
Beiträge: 69
Registriert: 02.01.2005 11:53

Beitrag von JKG »

:cry: Ne, das ist leider nicht die Lösung !

Trozdem danke !
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

So eine allgemeine Frage erzeugt nur ne allgemeine Antwort.

Ablauf i.A.
Die DB erzeugen (Db-Manager benutzen (hier ist einer für lau) und/oder sich in SQL der DB gut auskennen)

Die DB im ODBC anmelden
in Pb den ODBC-Eintrag zum Öffnen benutzen.
gültige SQl-Requests absetzen und bei Bedarf auswerten.

entweder so ..alle Werte angeben

INSERT INTO table_name
VALUES (value1, value2,....)

oder mit spezifierten Spalten

INSERT INTO table_name (column1, column2,...)
VALUES (value1, value2,....)
DB schliessen.
Zuletzt geändert von bobobo am 11.01.2005 14:53, insgesamt 1-mal geändert.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
freedimension
Admin
Beiträge: 1987
Registriert: 08.09.2004 13:19
Wohnort: Ludwigsburg
Kontaktdaten:

Re: SQL Befehl INSERT INTO mit Variablen

Beitrag von freedimension »

Klappt's so?

Code: Alles auswählen

RetVal$ = "INSERT INTO MeineDatenbank SET feldname1 = '" + Str(var1) + "' feldname2 = '" + Str(var2) + "'"
Evtl. tatsächlich auch nochmal mit dem Semikolon probieren
Beginne jeden Tag als ob es Absicht wäre!
Bild
BILDblog
JKG
Beiträge: 69
Registriert: 02.01.2005 11:53

Beitrag von JKG »

:( Tschuldigung !

Hier etwas genauer.

Die eigentliche Vorgehensweise ist schon klar. ODBC usw. alles erledigt.
SELECT-Anweisungen funktionieren auch!

Hier jetzt das Problem.

Code: Alles auswählen

RetVal$ = "INSERT INTO MeineDB VALUES ('11.01.2005', 'Text1', Text2')" 
Dieser SQL-Befehl funktioniert einwandfrei.

Wie muss der Befehl denn aussehen, wenn ich anstatt den Werten 'Text1' usw. Variablen übergeben will, die ich vorher mit GetGadgetText() ausgelesenhab ?

Gruß Jörg
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Code: Alles auswählen

RetVal$ = "INSERT INTO MeineDB VALUES ('11.01.2005', '" + Text1.s + "', " + Text2.s + "')" 
oder ich habs immer noch nicht kapiert
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
JKG
Beiträge: 69
Registriert: 02.01.2005 11:53

Beitrag von JKG »

Hallo Zusammen !

Jetzt funktioniert es. Ich weiß zwar nicht genau warum, aber das lerne ich vielleicht auch noch. Der SQL-Befehl muss folgender Maßen lauten.

Code: Alles auswählen

RetVal$ = "INSERT INTO MeineDB VALUES ( '" + e_date$ + "' , '" + Text1$ + "', '" + Text2$ + "', '" + Text3$ + "')"
Ich wußte nicht, dass man Variablen so übergibt. '" + var.s + "' Diese Formatierung war mir nicht bekannt.

Danke an alle und Gruß

Jörg
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Das war genau das, welches ich im ersten Posting ausdrücken wollte :allright:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Kiffi
Beiträge: 10719
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

> Ich weiß zwar nicht genau warum, aber das lerne ich vielleicht auch
> noch.

Stringwerte müssen in einem SQL-String generell mit einfachen
Hochkommata (') geklammert werden. Bei Zahlenwerten braucht man das
nicht. Maßgebend ist hier das Format der Tabellenfelder.

Code: Alles auswählen

sSQL.s = "INSERT INTO myDB (fldZahl, fldText) VALUES ( " + Str(myNumber.l) + " , '" + myString$ + "')" 
Grüße ... Kiffi
Antworten