Daniil писал(а):В идела, вся БД будет синхронизироваться с MySQL сервером (как загрузка, так и выгрузка)
Daniil писал(а):Может кто подскажет как организовать правильное и разиональное хранение данных.
Да уж, не городи огород. Связался с одним сервером - ну так и делай все на нем. Терпеть не могу эти гетерогенные системы...
MySql
Daniil писал(а):Ну это на сервере - понятно что в MySql
а на хар де-то в каких файлах?
Igor_123 писал(а):А Мускул в оффлайне уже не работает?Daniil писал(а):Ну это на сервере - понятно что в MySql
а на хар де-то в каких файлах?
В БД Мускула.
Или что тебе нужно???
Ennor писал(а):Ох и умаешься ты с ней...
Andrey Fedorov писал(а):Так я из базы SQL периодически формирую урезанную mdb-шку, которую потом вместе с программой пишу на диск для клиентов. Возможно так человеку и надо.
Ennor писал(а):Ну да, та же репликация, только реализованная полностью вручную.
Так я из базы SQL периодически формирую урезанную mdb-шку, которую потом вместе с программой пишу на диск для клиентов. Возможно так человеку и надо.
Другой вариант (это если можно без программы) - формировать chm-файл.
Daniil писал(а):Вот, это похоже что надо! Примерчика у вас нет?
Private Sub CopyTable(cat As ADOX.Catalog, cas As ADOX.Catalog, TableName As String, rSrc As ADODB.Recordset, Optional bSQL As Boolean = False)
Const sAZL As String = "Jet OLEDB:Allow Zero Length"
Dim t As ADOX.Table, tt As ADOX.Table, c As ADOX.Column, cc As ADOX.Column, _
iDst As ADOX.Index, iSrc As ADOX.Index, v As Variant, i As Long, _
rDst As New ADODB.Recordset, f As ADODB.Field, b As Boolean, s As String
If bSQL Then
Set tt = New ADOX.Table
tt.Name = TableName
For Each f In rSrc.Fields
Set cc = New ADOX.Column
cc.Name = f.Name
Select Case f.Type
Case adVarWChar, adVarChar
If f.DefinedSize <= 255 Then
cc.Type = adVarWChar
cc.DefinedSize = f.DefinedSize
Else
cc.Type = adLongVarWChar
End If
Case adDBTimeStamp
cc.Type = adDate
Case adLongVarChar
cc.Type = adLongVarWChar
Case adChar, adWChar
cc.Type = adVarWChar
cc.DefinedSize = f.DefinedSize
Case adBoolean
cc.Type = adSmallInt
Case Else
cc.Type = f.Type
End Select
cc.Attributes = IIf(f.Attributes And adFldIsNullable, adColNullable, adColFixed)
tt.Columns.Append cc
Next f
cat.Tables.Append tt
Else
Set t = cas.Tables(TableName)
Set tt = New ADOX.Table
tt.Name = t.Name
For Each c In t.Columns
b = False: s = c.Name
For Each f In rSrc.Fields
If f.Name = s Then b = True: Exit For
Next f
If b Then
Set cc = New ADOX.Column
cc.Name = c.Name
Select Case c.Type
Case adVarWChar, adVarChar
If c.DefinedSize <= 255 Then
cc.Type = adVarWChar
cc.DefinedSize = c.DefinedSize
Else
cc.Type = adLongVarWChar
End If
Case adDBTimeStamp
cc.Type = adDate
Case adLongVarChar
cc.Type = adLongVarWChar
Case adChar, adWChar
cc.Type = adVarWChar
cc.DefinedSize = c.DefinedSize
Case Else
cc.Type = c.Type
End Select
cc.Attributes = c.Attributes
tt.Columns.Append cc
End If
Next c
cat.Tables.Append tt
' Copy Indexes
For Each iSrc In t.Indexes
If iSrc.PrimaryKey Then
Set iDst = New ADOX.Index
iDst.Name = iSrc.Name
iDst.PrimaryKey = iSrc.PrimaryKey
iDst.Unique = iSrc.Unique
For Each c In iSrc.Columns
iDst.Columns.Append c.Name
Next c
tt.Indexes.Append iDst
End If
Next iSrc
End If
For Each cc In tt.Columns
Select Case cc.Type
Case adVarWChar, adVarWChar, adLongVarWChar, adLongVarChar
cc.Properties(sAZL) = False
End Select
Next cc
' Copy Data
rDst.Open "SELECT * FROM [" & TableName & "]", cat.ActiveConnection, adOpenStatic, adLockOptimistic
Do Until rSrc.EOF
rDst.AddNew
For Each f In rSrc.Fields
If Len(Nz(f, "")) > 0 Then rDst.Fields(f.Name) = f
Next f
rDst.Update
rSrc.MoveNext
Loop
rSrc.Close: rDst.Close
End Sub
Другой вариант (это если можно без программы) - формировать chm-файл.
А зачем php-то там?
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 28