Seite 2 von 2

Verfasst: 02.10.2008 13:15
von Palandt
Super, dann kann ich Access ja endgültig den Rücken kehren, Bill Gates wird dir nicht so dankbar sein wie ich.... :wink:

Verfasst: 02.10.2008 15:04
von Palandt
at Kaeru: Da steht Evolution (und zu sehen sind Fische, die erst keine, dann zwei kurze, dann zwei längere und zuletzt zwei längere L-förmige Striche unterm Bauch haben), hatte aber keinen Bock das Teil nochmal in größerer Version hochzuladen...

at Kiffi: Musste vorhin feststellen, dass die mit deinem Prog erzeugte Datenbank nicht vernünftig auf meine SQL - Kommandos reagierte, bis ich dahinterkam, dass alle Tabellenspalten den Typ STRING hatten, da kann ich lange integerbasierte Sortierkommandos rauskrakeelen. Hab dein Prog jetzt exakt auf meine Datenbank angepasst und jetzt klappt alles 100 %. Beizeiten werd ich mir noch etwas ausdenken, um meine 246 Tabellen automatisch einzulesen. Soviel sind es nämlich im Moment, hatte mich total verschätzt, habs erst festgestellt, als ich vorhin mit dem SQLite-Manager meine Projekte-Tabelle kontrollierte, bis zum Examen werden es dann wohl 300 sein.

Hier mein veränderter Code:

Code: Alles auswählen

EnableExplicit

UseODBCDatabase()
UseSQLiteDatabase()

Define Werte.s
Define Wertzaehler.l

Define MDB.l
Define SDB.l

Define MDB_ODBC.s  = "QM2" 
Define SQLite_DB.s = "K:\VB-Programme\PURE BASIC\QM\Database\QM2.sqlite"


NewList Tabellenname.s()

; Nun trägst Du in der LinkedList die Namen der zu exportierenden Tabellen ein:
AddElement(Tabellenname()) : Tabellenname() = "Schadensrecht"
AddElement(Tabellenname()) : Tabellenname() = "SR_Anwartschaftsrecht"
AddElement(Tabellenname()) : Tabellenname() = "VerwProzR7_Normenkontrolle"
AddElement(Tabellenname()) : Tabellenname() = "Projekte"
; [...] und so weiter und so fort

MDB = OpenDatabase(#PB_Any, MDB_ODBC, "", "", #PB_Database_ODBC)

If MDB
 
  If CreateFile(0, SQLite_DB)
   
    CloseFile(0)
   
    SDB = OpenDatabase(#PB_Any, SQLite_DB, "", "", #PB_Database_SQLite)
   
    If SDB
     
      ForEach Tabellenname()
       
        If DatabaseQuery(MDB, "Select * From " + Tabellenname())
         
;   TABELLENTYP PRÜFEN und in Abhängigkeit davon, die Tabellenstruktur erstellen

		  If Tabellenname () <> "Projekte" 				         
	          If DatabaseUpdate(SDB, "Create Table " + Tabellenname() + " (FragenID INT, Frage STRING, AntwortID STRING, Thema STRING, HL INT, Link STRING)") = 0
	            Debug "DatabaseError: " + DatabaseError()
	          EndIf
	      Else
	      	  If DatabaseUpdate(SDB, "Create Table " + Tabellenname() + " (ProjektID INT, Projektname STRING, Rechtsgebiet STRING)") = 0
	            Debug "DatabaseError: " + DatabaseError()
	        EndIf
	      EndIf
	         
          ; Insert-Into-Statement
         
          DatabaseUpdate(SDB, "Begin Transaction")
         
          While NextDatabaseRow(MDB)
           
            Werte = ""
           
            For Wertzaehler = 0 To DatabaseColumns(MDB) - 1
             
              Werte + "'" + ReplaceString(GetDatabaseString(MDB, Wertzaehler), "'", "''") + "'"
             
              If Wertzaehler < DatabaseColumns(MDB) - 1
                Werte + ","
              EndIf
             
            Next
            
            
	        If DatabaseUpdate(SDB, "Insert Into " + Tabellenname() + " Values (" + Werte + ")") = 0
	        	Debug "DatabaseError: " + DatabaseError()
	        EndIf
           
          Wend
         
          DatabaseUpdate(SDB, "Commit")
         
        Else
         
          Debug "!DatabaseQuery"
          Debug DatabaseError()
         
        EndIf
       
      Next
     
      CloseDatabase(SDB)
   
    Else
     
      Debug "!SDB"
     
    EndIf

  Else
   
    Debug "!CreateFile"
   
  EndIf
 
  CloseDatabase(MDB)
 
Else
 
  Debug "!MDB"
 
EndIf

Verfasst: 02.10.2008 21:00
von HeX0R
Kiffi hat geschrieben: Budweiser Budvar wäre mir lieber ;-)
Oho, der Junge hat Geschmack :allright:
Wenn noch eine über bleibt, "opfer" ich mich!

Verfasst: 02.10.2008 21:26
von Palandt
Sir Lord Hexor, ich hab dir doch schon kistenweise Bier geschickt, sag nicht, das ist schon alles weggesoffen....manoman....jetzt weiss ich endlich, woher diese genialen Einfälle immer bei dir herrühren...:)