IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
> Fehler bei Einfügen in Excel DB (INSERT INTO)
Ulli-Macky
post 07. Jul 2010, 09:45
Post #1


new Member
*

Group: Members
Posts: 4
Joined: 07.07.2010
From: Wetzlar
Member No.: 157
LV Version: LV2009
Zertifizierung: keine
LV User seit: 2005



Hallo Leute,
bin neu hier im Forum und wollte erst mal folgendes loswerden:
"Lob und Anerkennung" für das ADO-Toolkit und den Support. worshippy.gif Hat mir schon einige Male weiter geholfen.

Habe aber auch noch ein Problem mit "Einfügen in eine Excel Datenbank". In Anlehnung an das ado-bsp_02 habe ich folgendes VI erstellt, siehe Anhang.
Dabei bekomme ich die Fehlermeldung:

Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Excel Driver] Syntaxfehler in der INSERT INTO-Anweisung. in ADOTool_ADO API.vi->ADOTool_Insert Data.vi->Datenbank_lesen_schreiben.vi

Komme z.Z nicht weiter, bitte um Hilfe.

Danke im Voraus

Gruß Ulli

Attached Image
Go to the top of the page
 
+Quote Post
Ulli-Macky
post 07. Jul 2010, 13:06
Post #2


new Member
*

Group: Members
Posts: 4
Joined: 07.07.2010
From: Wetzlar
Member No.: 157
LV Version: LV2009
Zertifizierung: keine
LV User seit: 2005



Habe meinen Fehler gefunden. An Sonde 3 muss es heissen: "INSERT INTO [Datenbank$] (Auftragsnummer, Seriennummer) VALUES (%s, %s)".

Dafür habe ich nun ein neues Problem: habe das VI erweitert um die Eingabe "Artikelbezeichnung". Dies funktioniert aber nur wenn ich als Artikelbezeichnung Zahlen nehme. Wenn Buchstaben in das String-Eingabefeld eingetragen werden kommt folgende Fehlermeldung:

Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Excel Driver] 1 Parameter wurden erwartet, aber es wurden zu wenig Parameter übergeben. in ADOTool_ADO API.vi->ADOTool_Insert Data.vi->Datenbank_lesen_schreiben.vi

Diese Fehlermeldung tritt auch auf wenn ich in das Seriennummer-Feld einen Buchstaben eintrage (z.B. A123456).

Hat jemand eine Idee?

Gruß Ulli
Go to the top of the page
 
+Quote Post
CB
post 07. Jul 2010, 19:42
Post #3


proven Member
****

Group: Administrators
Posts: 314
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



QUOTE (Ulli-Macky @ 07. Jul 2010, 14:06) *
Hat jemand eine Idee?


ja, das ist nur eine Frage des Formates:

Strings werden in Hochkommas im SQL-Query übergeben, also

INSERT INTO tabellenname (TextSpaltenName) VALUES ('mein Text in Hochkommas')

das muss man auch im "Format Specifier" für die "format into string"-Primitive beachten, der Format-String für das obige Beispiel würde lauten:

INSERT INTO tabellenname (TextSpaltenName) VALUES ('%s')

und gleich noch ein Tip: wenn man Fließkommazahlen übergeben will, dann muss man in den Format-Specifier vorne weg ein %.; setzen, damit die Primitive als Dezimal-Trennzeichen den Punkt anstatt des Kommas verwendet. Das Komma ist bei SQL das Spalten-Trennzeichen => bei Nichtbeachtung dieser Regel wird man immer den Fehler-Bekommen, dass die Anzahl der Spalten nicht mit der Anzahl der Parameter übereinstimmt ...

viele Grüße
CB


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post
Ulli-Macky
post 04. Feb 2013, 14:16
Post #4


new Member
*

Group: Members
Posts: 4
Joined: 07.07.2010
From: Wetzlar
Member No.: 157
LV Version: LV2009
Zertifizierung: keine
LV User seit: 2005



Hallo,

nochmal eine Frage zum Thema "Einfügen in eine Excel-Tabelle":
- kann ich ein Datum nur als String einfügen, also mit Hochkommas 'DD.MM.YYYY'?
Das Problem ist nämlich folgendes: es funktioniert als String problemlos, aber in der Excel-Tabelle selber kann man die Datums-Spalte nicht auf- oder absteigend sortieren, bzw. das Sortieren funktioniert nicht richtig.
Attached Image


Wenn ich die Hochkommas im Formatbezeichner weg lasse, bekomme ich folgende Fehlermeldung:
Nr. -2147217900
Exception occured in Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC Excel Driver] Syntaxfehler in Zahl in Abfrageausdruck '21.07.2012'. in ADOTool_ADO API.vi->ADOTool_Insert Data.vi

Habt Jemand einen Tipp?

Gruß Ulli
Go to the top of the page
 
+Quote Post
CB
post 11. Feb 2013, 12:52
Post #5


proven Member
****

Group: Administrators
Posts: 314
Joined: 16.10.2006
From: Düsseldorf
Member No.: 2
LV Version: current
Zertifizierung: CLA
LV User seit: 2001



das geht vermutlich nur als String. Was man mal probieren könnte ist, in der Excel-Tabelle die Spalte in die die Daten als Datum eingefügt werden sollen, zu markieren und über den Format-Befehl explizit den Daten-Typ "Datum" zuzuweisen.

Meine Empfehlung wäre nicht direkt in Excel zu schreiben, sondern stattdessen eine Access Datenbank zu verwenden und die Excel-Tabellen in Excel mit der Access-Datenbank zu verknüpfen (ggf. auch über Microsoft Query bzw. den Befehl "Externe Daten"), das macht vieles leichter. Die Ansichten kann man auch direkt in Access erzeugen und einfach mit einem "SELECT * FROM ANSICHTNAME" nach Excel importieren ...

Die gesamte Excel-funktionalität im ADO-Toolkit ist eigentlich unter dem Gesichtspunkt zu sehen "wenn's denn unbedingt sein muss, geht das auch, aber ...".


--------------------
künstliche Intelligenz ist besser als natürliche Dummheit!
rotabench:rotierende Prüfstände nach dem Baukasten-Prinzip
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



Lo-Fi Version Time is now: 19.12.2018 - 08:50