|
|
|
Создание копии скелета базы а оно ...
|
|||
|---|---|---|---|
|
#18+
Требуется создать базу архив Код: Dim i As Integer, j As Integer, AMode As Integer Dim str As String, AFileName As String Dim fs As FileSystemObject Dim ws As Workspace Dim db As Database, dbNew As Database Dim td As TableDef, tdNew As TableDef Dim fld As Field, fldNew As Field Dim idx As Index, idxNew As Index Dim rlt As Relation, rltNew As Relation str = Forms("Форм_Главная").Form.edPathToBase Set ws = DBEngine.Workspaces(0) Set db = OpenDatabase(str) AFileName = edNewDataBase Set fs = CreateObject("Scripting.FileSystemObject") Set dbNew = ws.CreateDatabase(AFileName, dbLangCyrillic, dbEncrypt) For Each td In db.TableDefs If Left(td.Name, 4) = "Табл" Then Set tdNew = dbNew.CreateTableDef(td.Name) For Each fld In td.Fields Set fldNew = tdNew.CreateField(fld.Name, fld.Type, fld.Size) If fldNew.Type = dbText Then fldNew.AllowZeroLength = fld.AllowZeroLength fldNew.Attributes = fld.Attributes fldNew.DefaultValue = fld.DefaultValue fldNew.Required = fld.Required tdNew.Fields.Append fldNew Next fld If td.Indexes.Count Then For Each idx In td.Indexes 'If idx.Name = "primarykey" Then Set idxNew = tdNew.CreateIndex(idx.Name) For Each fld In idx.Fields idxNew.Fields.Append idxNew.CreateField(fld.Name) Next fld idxNew.Unique = idx.Unique idxNew.Primary = idx.Primary tdNew.Indexes.Append idxNew 'End If Next idx End If dbNew.TableDefs.Append tdNew End If Next td AMode = dbRelationUpdateCascade + dbRelationDeleteCascade For Each rlt In db.Relations str = rlt.Table & rlt.ForeignTable Set rltNew = dbNew.CreateRelation(str, rlt.Table, rlt.ForeignTable, AMode) 'rlt.Attributes) For Each fld In rlt.Fields Set fldNew = rltNew.CreateField(fld.Name) fldNew.ForeignName = fld.ForeignName rltNew.Fields.Append fldNew Next fld dbNew.Relations.Append rltNew Next rlt на строке (dbNew.Relations.Append rltNew) при создании первой-же записи говорит что ИНДЕКС УЖЕ СУЩЕСТВУЕТ и дальше не хочет. Как это понимать, я проверял индекса с таким именем нету ни в исходной базе не в результирующей, что я делаю не правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 01:16 |
|
||
|
Создание копии скелета базы а оно ...
|
|||
|---|---|---|---|
|
#18+
Попробуй так, пусть связь будет с другим именем Код: plaintext Больше сказать ничего не могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 03:51 |
|
||
|
Создание копии скелета базы а оно ...
|
|||
|---|---|---|---|
|
#18+
я проверял индекса с таким именем нету ни в исходной базе не в результирующей Фигово ты проверял. Нефиг все подряд индексы тупо добавлять Если idx.Foreign = True, то пропускать такой индекс надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2004, 09:22 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32390041&tid=1676984]: |
0ms |
get settings: |
12ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
31ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 384ms |

| 0 / 0 |
