Thread Liste in Datenbank schreiben (3 answers)
Opened by vitek at 2013-10-21 11:17

vitek
 2013-10-21 11:17
#171354 #171354
User since
2009-12-02
36 Artikel
BenutzerIn
[default_avatar]
Hi Leute,
ich krieg grad die Krise... das will einfach nicht klappen:

Dies ist mein Testarray:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
	my @tmparr = ("\'ELEMTYP103\'",
-16575047,
1,
10288,
"\'mitR\'",
"\'2041 2042 2043\'",
"\'\'",
"\'123 2354 2041\'",
"\'1 2 3 4 5 6 7\'"
,777,);

Das wird mittels folgendem code in die DB geschrieben:
Code: (dl )
1
2
3
4
	my $query = "INSERT INTO ElemTyp(sektion,c_id,klasse,id,name,kommandos,KommandoSortierung,@DLGKommandoSortierung,attribute,dialogid) 
VALUES($sektion,$c_id,$klasse,$id,$name,@kommandos,@KommandoSortierung,@DLGKommandoSortierung,@attribute,$dialogid)";

!$db->Sql($query) or die "couldn't do $query because ", $db->Error(), "\n";


Soweit so gut, das funktioniert einwandfrei.

Wenn ich mir mein Array jetzt dynamisch aufbaue und dann in die Datenbank
schreiben möchte geht das nicht mehr. Das ist eine Access DB und die spuckt dann "Syntaxfehler in der INSERT INTO-Anweisung" aus.
Das Array wird folgendermaßen zusammengebaut:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
	my $prf = "\'";
my $suf = "\'";

$temp=getParameterName($xline);
$elt_sektion = $prf.$1.$suf;
switch ($temp)
{
case "C_ID" {$elt_cid = getParameterValueNOLF($xline)}
case "klasse" {$elt_klasse = getParameterValueNOLF($xline)}
case "id" {$elt_id= getParameterValueNOLF($xline)}
case "Name" {$elt_name= $prf.getParameterValueNOLF($xline).$suf}
case "kommandos" {$elt_kdos= $prf.getParameterValueNOLF($xline).$suf}
case "KommandoSortierung" {$elt_kdossort= $prf.getParameterValueNOLF($xline).$suf}
case "attribute" {$elt_attr= $prf.getParameterValueNOLF($xline).$suf}
case "dialogId" {$elt_dlgid= getParameterValueNOLF($xline)}
}
...
push @elt_list,[$elt_sektion,$elt_cid,$elt_klasse,
$elt_id,$elt_name,$elt_kdos,$elt_kdossort,
$elt_attr,$elt_dlgid];


Und das wird mir beim Einfügen zurückgegeben:
Code: (dl )
1
2
couldn't do INSERT INTO ElemTyp(sektion,c_id,klasse,id,name,kommandos,KommandoSortierung,DLGKommandoSortierung,attribute,dialogid) 
VALUES('ELEMTYP0',-16628015,1,207,'abschnitt','2071 2072 2073 2074 ','','2071 2072 2073 2074 2075 ',777,) because -3502[Microsoft][ODBC Microsoft Access Driver] Syntaxfehler in der INSERT INTO-Anweisung.10


Ich blick iwie nicht lang was da schief läuft...

View full thread Liste in Datenbank schreiben