Newsgroup: it.comp.software.database
Titolo: [?] Copia struttura da Access a MySQL

Salve a tutti,
volevo chiedere se qualcuno conosce un modo per poter creare la stessa
struttura di un DB ACCESS (o SqlServer) in un DB MySQL.
Se non è possibile in automatico, c'è un modo per avere le query di
creazione in formato testo da Access o SqlServer?
Grazie 1k
Aran Banjo

eri...@libero.it
 (Aran Banjo) wrote in 
news:3d6df26f...@news.cis.dfn.de
:

prova a dare un occhiata qui:
http://www.dbtools.com.br/EN/


Tempo fa mi ero fatto questo piccolo script di conversione da Access a MySQL,
che per le mie esigenze (qualche decina di tabelle) era più che sufficiente.
Il file prodotto dovevo rivederlo per qualche piccolo errore di sintassi
(togliere il carattere ";" nell'ultimo campo della tabella), confrontare
prudentemente con il db originale e correggere alcuni tipo di campo (ad
esempio non esiste il campo booleano, che ho tradotto con "bit").
È sufficiente lanciare la funzione EsportaTabelleDB("nomechetipare.sql")
e nel file prodotto trovi tutta la struttura del db.
Spero che sia ancora utilizzabile nella versione attuale di Access, poiché
non ho modo di verificarlo: dopo essere passato a MySQL con Linux ho gettato
alle ortiche Access e Windows senza alcun rimpianto!
Bye
	gpb
Function TipoFieldsSQL$(Tipo%)
  Dim r$
  Select Case Tipo%
  Case dbBoolean:     r$ = "bit"              'Boolean
  Case dbByte:        r$ = "tinyint"          'Byte
  Case dbInteger:     r$ = "smallint"         'Integer
  Case dbLong:        r$ = "integer"          'Long
  Case dbDate:        r$ = "datetime"         'Date/Time"
  Case dbDate:        r$ = "smalldatetime"    'Date/Time"
  Case dbTime:        r$ = "smalldatetime"    'Time
  Case dbTimeStamp:   r$ = "smalldatetime"    'TimeStamp
  Case dbLongBinary:  r$ = "image"            'LongBinary (OLE Object)"
  Case dbMemo:        r$ = "text"             'Memo
  Case dbChar:        r$ = "?char"    '(n)     'char
  Case dbText:        r$ = "varchar" '(n)     'Text"
  Case dbCurrency:    r$ = "money"            'Currency"
  Case dbSingle:      r$ = "float"            'Single"
  Case dbFloat:       r$ = "float"            'Float"
  Case dbDouble:      r$ = "double precision" ' Double"
  Case dbBigInt:      r$ = "dbBigInteger"
  Case dbBinary:      r$ = "dbBinary"
  Case dbDecimal:     r$ = "dbDecimal"
  Case dbGUID:        r$ = "dbGuid"
  Case dbNumeric:     r$ = "dbNumeric"
  Case dbVarBinary:   r$ = "dbVarBinary"
  End Select
  TipoFieldsSQL = r$
End Function
Function EsportaTabelleDB(filename$)
  Dim cntTbl As Integer, cntFld As Integer
  If filename$ = "" Then filename$ = CurrentDb.Name & "-tableDefinition.txt"
  Open filename$ For Output As #1
  For cntTbl = 0 To CurrentDb.TableDefs.Count - 1
   If (CurrentDb.TableDefs(cntTbl).Attributes And (dbSystemObject Or dbHiddenObject)) = 0 Then
     Print #1, "CREATE TABLE " & CurrentDb.TableDefs(cntTbl).Name & "("
     For cntFld = 0 To CurrentDb.TableDefs(cntTbl).Fields.Count - 1
      Print #1, " " & CurrentDb.TableDefs(cntTbl).Fields(cntFld).Name;
      Print #1, " " & TipoFieldsSQL$(CurrentDb.TableDefs(cntTbl).Fields(cntFld).Type);
      If CurrentDb.TableDefs(cntTbl).Fields(cntFld).Type = dbText Then _
          Print #1, " (" & CurrentDb.TableDefs(cntTbl).Fields(cntFld).Size & ")";
      If CurrentDb.TableDefs(cntTbl).Fields(cntFld).Required = True Then _
          Print #1, " NOT NULL," Else Print #1, " NULL,"
     Next cntFld
     Print #1, ") ;"
     Print #1, ""
     DoCmd.TransferText acExportDelim, , CurrentDb.TableDefs(cntTbl).Name, _
       CurrentDb.Name & "-table-" & CurrentDb.TableDefs(cntTbl).Name & ".txt", False
   End If
  Next cntTbl
  Close #1
  Shell "notepad.exe " & filename$, vbMaximizedFocus
End Function
-- 
http://gpbizzaro.supereva.it/index.html
(Cartesio aggiornato il 17 maggio 2002)


http://www.dbtools.com.br/EN/
Perfetto, funziona perfettamente!
Grazie
Aran

 Aran
 Prego ;-) ciao