Seite 1 von 1

SQL- Script mit sqlite3 ausführen

Verfasst: Freitag 14. Januar 2011, 16:31
von Schaf220
Hallo liebe Community,

ich bin langsam am Verzweifeln. Ich habe ein SQL-Script mit folgendem Inhalt:

http://www.xup.in/dl,56655141/script.sql/

Nun möchte ich die Befehle für sqlite3 übernehmen. Als erstes habe ich die ganzen unnötigen Kommentare entfernt. Dann habe ich due datei eingelesen und die unnötigen Zeilenumbrüche entfernt. Anschließend habe ich alle zeieln zu einem String zusammen gefügt. Es gibt nur Syntax Error udn ich weiß nicht warum. Habt ihr vieleicht eine Idee, was ich machen kann?

Hier man mein Versuch:

Code: Alles auswählen

#! /usr/bin/env python
# -*- coding: utf-8 -*-
from sqlite3 import dbapi2 as sqlite

liste = []
f = open("script.sql", "r")
line = f.readlines()
for x in line:
    x.rstrip('\n')
    liste.append(x[:-1])

table = ""
for e in liste:
    table += e
    table += " "

print table

dbName = "testDB.sqlite"
con = sqlite.connect(dbName)
cur = con.cursor()
cur.execute(table)

Mit freundlichen Grüßen
schaf220

Re: SQL- Script mit sqlite3 ausführen

Verfasst: Freitag 14. Januar 2011, 16:38
von Hyperion
Hui... der Code sieht teilweise abenteuerlich aus!

1.) Ist das nicht ein MySQL Dump? Wenn ja kann es ja durchaus sein, dass SQLite in einigen Dingen eine andere Syntax besitzt und es daran scheitert?

2.) Welcher Fehler kommt denn genau?

3.) In dem Paste scheint das Encoding nicht zu stimmen!

4.) Du willst nicht wirklich zig SQL-Befehler mit einem execute() ausführen; lies Dir dazu doch noch mal die Doku duch.

5.) Wieso eigentlich muss man das mit Python machen; die paar Tabellen würde ich doch manuell extrahieren und entsprechend einfügen; selbiges gilt für die wenigen Datensätze.

Re: SQL- Script mit sqlite3 ausführen

Verfasst: Freitag 14. Januar 2011, 16:52
von Schaf220
1.) Ja das ist ein MySQL Dump.

2.) Das sind eigentlich nur Syntaxerrors. Schon bei dem ersten Befehl SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; --> schein es nicht zu geben in sqllite

3.) Das encoding hatte ich vergessen zu posten. --> jetzt verbessert

4.) executescript() habe ich schon gesehen, hat aber nicht geklappt

5.) Es ist Teil meines Programmes und soll eine DB beim ersten Start des Programmes anlegen.

Re: SQL- Script mit sqlite3 ausführen

Verfasst: Freitag 14. Januar 2011, 17:28
von cofi
Nein das geht so nicht, Sqlite kennt weder das set, noch Engines. Du kannst das erst ausfuehren, wenn das (das von sqlite unterstuetzte Subset von) Standard-SQL ist.

Mehr dazu in der Sqlite Doku: http://sqlite.org/lang.html

Re: SQL- Script mit sqlite3 ausführen

Verfasst: Freitag 14. Januar 2011, 17:36
von Schaf220
Vielen Dank ich werden mich jetzt mal rann machen, das hinzubiegen.