Ich habe mit Access eine Datenbank erstellt. Dort existieren volgende spalten:
Name (Feldtyp)
ID (Autowert)
Text (Memo)
Toppic (Text)
Author (Text)
Datum (Text)
Email (Text)
Die datenbank heißt VSO
der Script sieht so aus
Code: Alles auswählen
def news_set(text,toppic,id):
conn = odbc.odbc('VSO')
cursor = conn.cursor()
temp = 'SELECT Name FROM Members WHERE ID='+str(id)
exec 'cursor.execute(temp)'
name = cursor.fetchall()[0][0]
print name
cursor.execute('SELECT Email FROM Members WHERE ID='+str(id))
email = cursor.fetchall()[0][0]
cursor.execute('SELECT max(ID) FROM News')
id = cursor.fetchall()
id = id[0][0]
id = id+1
print id
#__________________________Datum______________________________
zeit = time.localtime(time.time())
if zeit[6] == 0:
tag = 'Mo'
if zeit[6] == 1:
tag = 'Di'
if zeit[6] == 2:
tag = 'Mi'
if zeit[6] == 3:
tag = 'Do'
if zeit[6] == 4:
tag = 'Fr'
if zeit[6] == 5:
tag = 'Sa'
if zeit[6] == 6:
tag = 'So'
datum = tag+', '+str(zeit[2])+'.'+str(zeit[1])+'.'+str(zeit[0])
Code: Alles auswählen
temp1 = 'INSERT INTO News VALUES('+str(id)+', '+text+', '+toppic+', '+name+', '+datum+', '+email+')'
exec 'cursor.execute(temp1)'
cursor.close()
conn.close()
return 1
WarumTraceback (innermost last):
File "<pyshell#3>", line 1, in ?
news_set('News','Toppic',1)
File "D:\clanpage\cppy\cgi-bin\schnitt.py", line 53, in news_set
exec 'cursor.execute(temp1)'
File "<string>", line 1, in ?
dbi.program-error: [Microsoft][ODBC Microsoft Access Driver] Syntaxfehler (fehlender Operator) in Abfrageausdruck 'VSO-LuScHe@gmx.de'. in EXEC

Auch wenn ich denn execute-befehl so schreibe geht es net:
Code: Alles auswählen
cursor.execute(INSERT INTO News VALUES('+str(id)+', '+text+', '+toppic+', '+name+', '+datum+', '+email+')')