Страница: 1 |
Страница: 1 |
Вопрос: Создание и дополнение бай данных.
Добавлено: 25.03.06 19:39
Автор вопроса: ZoomerSD | ICQ: 148640473
Госопода программисты, подскажите пожалуйста, как на Vb создать новую базу данных db или mdb, моздать в существующей новую таблицу, и создать в существующей таблице новый столбец?
Заранее спасибо.
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
[root]
Вопросов: 45
Ответов: 1212
Web-сайт:
Профиль | | #1
Добавлено: 25.03.06 20:37
дык зайди в примерах, должно быть
Номер ответа: 2
Автор ответа:
Alexandrus
ICQ: 496782368
Вопросов: 18
Ответов: 312
Web-сайт:
Профиль | | #2
Добавлено: 25.03.06 23:16
ZoomerSD:
На vbrussian.com\Статьи было две статьи по интересующему тебя вопросу.
1.Программное создание базы данных с помощью ADOX - Часть 1
http://www.vbrussian.com/Article.asp?ID=78
2.Программное создание базы данных с помощью ADOX - Часть 2
http://www.vbrussian.com/Article.asp?ID=80
С ув.Alex
Номер ответа: 3
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #3
Добавлено: 27.03.06 22:07
Уточни какими средствами?
DAO or ADO?
Номер ответа: 4
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #4
Добавлено: 27.03.06 22:25
(c) ms-black offline client
Public Function CreateStructDB() As Long
On Error GoTo EndCreateStructDB
Const StructSize = 46 'сумма количество таблиц и количества полей в них, минус 1 (конец массива)
Dim MyDBase As DAO.Database 'база данных
Dim MyTable As DAO.TableDef 'таблица
Dim MyField As DAO.Field 'столбец
Dim MyIndex As DAO.Index 'индекс
Dim Names() As String 'названия таблиц и полей
Dim Types() As Variant 'типы полей (таблица=0)
Dim Sizes() As Variant 'размеры текстовых полей
Dim i As Integer
Names = Split("AUTORS ID USERNAME FIRSTNAME LASTNAME AGE CITY MAIL WWW ICQ ANSWERS QUESTION SABOTAGES_RULES LAST_IN IS_ADMIN DATE_REG DATE_LAST_UPDATE_PROF FORUMS ID NAME DESCRIPTION TYPE IN_ANSWERS ID ID_QUESTION ID_IMAGE ID_AUTOR DATE_ADD TEXT IS_READ IN_QUESTIONS ID ID_FORUM ID_IMAGE ID_AUTOR SUBJECT DATE TEXT LAST_DATA_ANSWER IS_READ OUTBOX ID ID_FORUM ID_TOPIC ID_IMAGE SUBJECT TEXT", " ", -1)
Types() = Array(0, 4, 10, 10, 10, 10, 10, 10, 10, 10, 4, 4, 2, 8, 1, 8, 8, 0, 4, 10, 12, 4, 0, 4, 4, 4, 4, 8, 12, 1, 0, 4, 4, 4, 4, 10, 8, 12, 8, 1, 0, 4, 4, 4, 4, 10, 10)
Sizes() = Array(0, 0, 255, 50, 50, 50, 64, 255, 255, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 50)
Set MyDBase = DBEngine.CreateDatabase(App.Path & "\DataBase\vbnet.mdb", dbLangCyrillic)
For i = 0 To StructSize
'в этом цикле создаем все таблицы, поля и индексы
If Types(i) = 0 Then
'таблица
Set MyTable = MyDBase.CreateTableDef(Names(i))
Else
'поле
If Sizes(i) = 0 Then
'не текстовое поле
Set MyField = MyTable.CreateField(Names(i), Types(i))
Else
'текстовое поле
Set MyField = MyTable.CreateField(Names(i), 10, Sizes(i))
End If
MyTable.Fields.Append MyField
If Names(i) = "ID" Then
'здесь создаются индесы таблиц
Set MyIndex = MyTable.CreateIndex("PrimaryKey"
MyIndex.Primary = True
Set MyField = MyIndex.CreateField(Names(i), Types(i))
MyIndex.Fields.Append MyField
MyTable.Indexes.Append MyIndex
End If
If i = StructSize Then
'если это последний элемент (поле) в массиве
MyDBase.TableDefs.Append MyTable
ElseIf Types(i + 1) = 0 Then
'если после элемента (поля) идет таблица
MyDBase.TableDefs.Append MyTable
End If
End If
Next 'i
MyDBase.TableDefs.Refresh
Set MyIndex = Nothing 'освободить экземпляр объекта
Set MyField = Nothing 'освободить экземпляр объекта
Set MyTable = Nothing 'освободить экземпляр объекта
Set MyDBase = Nothing 'освободить экземпляр объекта
CreateStructDB = 0
Exit Function
EndCreateStructDB:
Debug.Print "Error #" & Err.Number & " Into " & Err.Source & ": " & Err.Description
CreateStructDB = Err.Number
End Function