Mailinglisten-Archive |
Hier ist das script mit dem ich komplette dbs exportieren kann.... ich hab das nicht geschrieben also macht mich fuer nix verantwortlich :-) ********************************************************************* Option Compare Database Option Explicit Function export_mysql() ' Exports the database contents into a file in mysql format ' IS NOT SELECTIVE! (exports ALL tables) ' version 1.00 August 1997 ' INSTRUCTIONS 'Paste this function into an Access module of a database which has the 'tables you want to export. Create a macro with the function RunCode and the 'argument export_mysql (). Run the macro to start the export. Dim dbase As Database, tdef As Recordset, i As Integer, fd As Integer, tname As String, j As Integer, iname As String Dim s As String, found As Integer, stuff As String, idx As Index, k As Integer, f As Integer, fld As Field, istuff As String Set dbase = CurrentDb() 'Open the file to export the defintions and data to. Change this to suit your needs **** Open "e:\temp\midihits" For Output As #1 Print #1, "# Converted from MS Access to mysql " Print #1, "# by Brian Andrews, (c) InforMate (www.informate.co.nz), brian_(at)_informate.co.nz, 1997" Print #1, "" 'Go through the table definitions For i = 0 To dbase.TableDefs.Count - 1 ' Let's take only the visible tables If ((dbase.TableDefs(i).Attributes And DB_SYSTEMOBJECT) Or (dbase.TableDefs(i).Attributes And DB_HIDDENOBJECT)) Then Else ' We DROP the table if it already exists ' and then create it again tname = "" & dbase.TableDefs(i).Name 'remove spaces from tablename For j = 1 To Len(tname) If j < Len(tname) Then If Mid$(tname, j, 1) = " " Then s = Left$(tname, j - 1) s = s & "" & Right$(tname, Len(tname) - j) j = j + 1 found = True tname = s End If End If Next j 'restrict tablename to 19 chars tname = Left$(tname, 19) 'comment out these lines if the table doesn't exist or else create it first Print #1, "" Print #1, "" Print #1, "DROP TABLE " & tname & "\g" Print #1, Print #1, "CREATE TABLE " & tname & "(" ' Step through all the fields in the table For fd = 0 To dbase.TableDefs(i).Fields.Count - 1 Dim tyyppi As String, pituus As Integer, comma As String Select Case dbase.TableDefs(i).Fields(fd).Type Case DB_BOOLEAN tyyppi = "SMALLINT" Case DB_INTEGER tyyppi = "SMALLINT" Case DB_BYTE tyyppi = "TINYBLOB" Case DB_LONG tyyppi = "INT NOT NULL" Case DB_DOUBLE tyyppi = "DOUBLE" Case DB_SINGLE ' tyyppi = "REAL" Case DB_CURRENCY tyyppi = "DOUBLE (8,4)" Case DB_TEXT pituus = dbase.TableDefs(i).Fields(fd).Size tyyppi = "CHAR (" & pituus & ")" Case dbAutoIncrField tyyppi = "INT NOT NULL AUTO_INCREMENT" 'Access Date fields are set as the mysql date type - you can change this to 'DATETIME if you prefer. Case DB_DATE tyyppi = "DATE" Case DB_MEMO, DB_LONGBINARY tyyppi = "BLOB" End Select 'Print the field definition 'remove spaces from fieldname stuff = "" & dbase.TableDefs(i).Fields(fd).Name 'we had a table called Index which mysql doesn't like If stuff = "Index" Then stuff = "Indexm" For j = 1 To Len(stuff) If j < Len(stuff) Then If Mid$(stuff, j, 1) = " " Then s = Left$(stuff, j - 1) s = s & "" & Right$(stuff, Len(stuff) - j) j = j + 1 found = True stuff = s End If End If Next j stuff = Left$(stuff, 19) 'not null If dbase.TableDefs(i).Fields(fd).Required = True Then tyyppi = tyyppi & " NOT NULL " End If 'default value If (Not (IsNull(dbase.TableDefs(i).Fields(fd).DefaultValue)) And dbase.TableDefs(i).Fields(fd).DefaultValue <> "") Then If dbase.TableDefs(i).Fields(fd).Required = False Then ' Hier geändert tyyppi = tyyppi & " NOT NULL " tyyppi = tyyppi End If If Left$(dbase.TableDefs(i).Fields(fd).DefaultValue, 1) = Chr(34) Then tyyppi = tyyppi & " DEFAULT '" & Mid$(dbase.TableDefs(i).Fields(fd).DefaultValue, 2, Len(dbase.TableDefs(i).Fields(fd).DefaultValue) - 2) & "'" Else tyyppi = tyyppi & " DEFAULT " & dbase.TableDefs(i).Fields(fd).DefaultValue End If End If 'print out field info comma = "," If fd = dbase.TableDefs(i).Fields.Count - 1 Then If dbase.TableDefs(i).Indexes.Count = 0 Then comma = "" Else comma = "," End If End If Print #1, " " & stuff & " " & tyyppi & comma Next fd 'primary key and other index declaration k = 0 For Each idx In dbase.TableDefs(i).Indexes 'Check Primary property k = k + 1 If idx.Primary Then istuff = " PRIMARY KEY (" Else istuff = " KEY (" End If f = 0 For Each fld In idx.Fields f = f + 1 iname = fld.Name For j = 1 To Len(iname) If j < Len(iname) Then If Mid$(iname, j, 1) = " " Then s = Left$(iname, j - 1) s = s & "" & Right$(iname, Len(iname) - j) j = j + 1 found = True iname = s End If End If Next j istuff = istuff & iname If f < idx.Fields.Count Then istuff = istuff & "," End If Next fld If k < dbase.TableDefs(i).Indexes.Count Then Print #1, istuff & ")," Else Print #1, istuff & ")" End If Next idx Print #1, ")\g" Print #1, "" Dim recset As Recordset Dim row As String, it As String Dim is_string As String, reccount As Integer, x As Integer Set recset = dbase.OpenRecordset(dbase.TableDefs(i).Name) reccount = recset.RecordCount If reccount <> 0 Then ' Step through the rows in the table recset.MoveFirst Do Until recset.EOF row = "INSERT INTO " & tname & " VALUES (" ' Go through the fields in the row For fd = 0 To recset.Fields.Count - 1 is_string = "" stuff = "" & recset.Fields(fd).Value Select Case recset.Fields(fd).Type Case DB_BOOLEAN 'true fields are set to 1, false are set to 0 If recset.Fields(fd).Value = True Then stuff = "0" Else stuff = "1" End If Case DB_TEXT, DB_MEMO, 15, DB_LONGBINARY is_string = "'" Case DB_DATE is_string = "'" 'format date fields to YYYY-MM-DD. You may want to add time formatting as 'well if you have declared DATE fields as DATETIME If stuff <> "" And Not (IsNull(stuff)) Then stuff = Format(stuff, "YYYY-MM-DD") End If Case Else 'default empty number fields to 0 - comment this out if you want If stuff = "" Then stuff = "0" End If End Select '**** escape single quotes x = InStr(stuff, "'") While x <> 0 s = Left$(stuff, x - 1) s = s & "\" & Right$(stuff, Len(stuff) - x + 1) stuff = s x = InStr(x + 2, stuff, "'") Wend '**** convert returns to <br>'s x = InStr(stuff, Chr(13)) While x <> 0 s = Left$(stuff, x - 1) s = s & "<br>" & Right$(stuff, Len(stuff) - x - 1) stuff = s x = InStr(x + 2, stuff, Chr(13)) Wend row = row & is_string & stuff & is_string If fd < recset.Fields.Count - 1 Then row = row & "," End If Next fd ' Add trailers and print row = row & ")\g" Print #1, row ' Move to the next row recset.MoveNext Loop recset.Close Set recset = Nothing End If End If Next i Close #1 dbase.Close Set dbase = Nothing End Function ************************************************************************** Beste Grüße aus Sinzig, Alexander Meis pixelhouse media service ---------------------------------------------------------------- - Barbarossastraße 36 - 53489 Sinzig - Tel: 02642-980330 - Fax: 02642-980215 - Internet: http://www.pixelhouse.de ----------------------------------------------------------------- >-----Original Message----- >From: php-admin_(at)_solix.wiso.Uni-Koeln.DE >[mailto:php-admin_(at)_solix.wiso.Uni-Koeln.DE]On Behalf Of Franz-Josef >Fehmer >Sent: Dienstag, 23. März 1999 17:34 >To: php_(at)_solix.wiso.Uni-Koeln.DE >Subject: Re: [php] MySQL und PHP > > >script, auch habenwollen > >> >> wenn du sonn scrit brauchst sag einfach bescheid.... >> >> gruss Alex... >> >> > >> >Vielen Dank ! >> > >> >Marco Richter >> > >> > >> >-- >> >Web-Seite: http://infosoc.uni-koeln.de/php/ >> >Listenadresse: php_(at)_infosoc.uni-koeln.de >> >http://infosoc.uni-koeln.de/mailman/listinfo/php >> > >> >> -- >> Web-Seite: http://infosoc.uni-koeln.de/php/ >> Listenadresse: php_(at)_infosoc.uni-koeln.de >> http://infosoc.uni-koeln.de/mailman/listinfo/php > >-- >"Phantasie ist wichtiger als Wissen." > Albert Einstein > > >------------------------------------------------------------------- >------------ > > Franz-Josef Fehmer, Callisto germany.net GmbH > Netzdienste > Stresemannallee 30, D-60596 Frankfurt am Main, Germany > Phone: +49-(0)69-63397-402, Fax: +49-(0)69-63397-444 > Kundenhotline: +49-(0)69-63397-101 > Email: fehmer_(at)_germany.net Url: www.netzdienste.de >------------------------------------------------------------------- >------------ > > > > >-- >Web-Seite: http://infosoc.uni-koeln.de/php/ >Listenadresse: php_(at)_infosoc.uni-koeln.de >http://infosoc.uni-koeln.de/mailman/listinfo/php >
php::bar PHP Wiki - Listenarchive