Автоматические свойства - это обычные свойства компилятора, они используют поля поддержки, такие как любое регулярное свойство, но вам не нужно писать код для этого. Вот очень показательный пример (благодаря Reflector ) кода, сгенерированного компилятором:
[CompilerGenerated]
private string k__BackingField;
public string ContentType
{
[CompilerGenerated]
get
{
return this.k__BackingField;
}
[CompilerGenerated]
set
{
this.k__BackingField = value;
}
}
Спасибо за другие предложения. В то время как я ожидал, я написал некоторый код VBA, чтобы сделать это. Это не прекрасно, но сделало задание для меня.
Option Compare Database
Public Function TableCreateDDL(TableDef As TableDef) As String
Dim fldDef As Field
Dim FieldIndex As Integer
Dim fldName As String, fldDataInfo As String
Dim DDL As String
Dim TableName As String
TableName = TableDef.Name
TableName = Replace(TableName, " ", "_")
DDL = "create table " & TableName & "(" & vbCrLf
With TableDef
For FieldIndex = 0 To .Fields.Count - 1
Set fldDef = .Fields(FieldIndex)
With fldDef
fldName = .Name
fldName = Replace(fldName, " ", "_")
Select Case .Type
Case dbBoolean
fldDataInfo = "nvarchar2"
Case dbByte
fldDataInfo = "number"
Case dbInteger
fldDataInfo = "number"
Case dbLong
fldDataInfo = "number"
Case dbCurrency
fldDataInfo = "number"
Case dbSingle
fldDataInfo = "number"
Case dbDouble
fldDataInfo = "number"
Case dbDate
fldDataInfo = "date"
Case dbText
fldDataInfo = "nvarchar2(" & Format$(.Size) & ")"
Case dbLongBinary
fldDataInfo = "****"
Case dbMemo
fldDataInfo = "****"
Case dbGUID
fldDataInfo = "nvarchar2(16)"
End Select
End With
If FieldIndex > 0 Then
DDL = DDL & ", " & vbCrLf
End If
DDL = DDL & " " & fldName & " " & fldDataInfo
Next FieldIndex
End With
DDL = DDL & ");"
TableCreateDDL = DDL
End Function
Sub ExportAllTableCreateDDL()
Dim lTbl As Long
Dim dBase As Database
Dim Handle As Integer
Set dBase = CurrentDb
Handle = FreeFile
Open "c:\export\TableCreateDDL.txt" For Output Access Write As #Handle
For lTbl = 0 To dBase.TableDefs.Count - 1
'If the table name is a temporary or system table then ignore it
If Left(dBase.TableDefs(lTbl).Name, 1) = "~" Or _
Left(dBase.TableDefs(lTbl).Name, 4) = "MSYS" Then
'~ indicates a temporary table
'MSYS indicates a system level table
Else
Print #Handle, TableCreateDDL(dBase.TableDefs(lTbl))
End If
Next lTbl
Close Handle
Set dBase = Nothing
End Sub
я никогда не утверждал, что был программистом VB.
Используйте Инструментальные средства Миграции Разработчика SQL Oracle.
существует полное учебное руководство при преобразовании баз данных Access к Oracle, доступной здесь . Если его единственное структуры, которые Вы после, то можно сконцентрироваться на разделе 3.0.
Я сделал это:
существует инструмент для "увеличения" от Доступа до SQL Server. Сделайте это, затем используйте превосходные инструменты SQL Server для генерации сценария.
Можно использовать функцию экспорта в Доступе для экспортирования таблицы к источнику данных ODBC. Настройте источник данных ODBC к базе данных Oracle и затем щелкните правой кнопкой по таблице на вкладке "Tables" Доступа и выберите экспорт. ODBC является одними из "форматов файлов" - он затем поднимет обычное диалоговое окно ODBC.
Вы могли бы хотеть изучить ADOX для достигания информации о схеме. Используя ADOX можно получить вещи, такие как ключи, представления, отношения, и т.д.
, К сожалению, я не программист VB, но существует много примеров в сети с помощью ADOX для достигания схемы таблицы.