|
|
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
Нужно работать с базой на FoxPro 2.6. Выбор языка еще не сделал (либо VB6, либо VB.NET). Что по вашему лучше, в смысле удобнее для работы. Круг задач таков: считать инфу из одной базы и слить в другую, по возможности разрешая коллизи. Еще раз переформулирую вопрос: чем удобнее решить поставленные задачи (время работы не критично) Большое спасибо всем ответившим за помощь, я с FoxPro раньше не сталкивался вообще, не говоря уже о FoxPro 2.6 и с dbf файлами не работал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2006, 09:26 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
Ну ответьте кто-нибудь, горю!!! Хоть где искать подскажите, хоть примерно!!! Может вопрос не понятно сформулировал, так скажите что хоть непонятно! Неужели никто ничего сказать не может??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 09:51 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
Недавно у самого возникла необходимость работать с DBF (fox pro 2.6) сначала начал на VB6, потом перешёл на VB.NET из за гемора с инсталлятором VB6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 11:36 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
А можно поподробнее, как подключаешься? Как записи тянешь? На куче форумов задавал вопрос, никто не отвечает. Тема актуальна, напиши поподробнее плиз. Всем пригодится!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 11:53 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
В общем на VB.NET (VS 2003) всё выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. кстати connection strings берём отсюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 12:07 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
Спасибо за пример, буду пробовать! Только вот вопрос, это подключение ко всей базе, а как к одной таблице? Вот если я например хочу к одной таблице базы данных подключиться и из нее все выкачать? Или например к двум таблицам? Т.е. в базе штук 10 таблиц ... а я хочу инфу из 2ух выкачать. Можно как-то цепляться только к определенному числу таблиц? Еще вопрос, если там в одном каталоге 2 базы лежит к какой он зацепиться? Ты же только путь указываешь, а название самой базы как-то нужно указывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 07:24 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
nightshineСпасибо за пример, буду пробовать! Только вот вопрос, это подключение ко всей базе, а как к одной таблице? Вот если я например хочу к одной таблице базы данных подключиться и из нее все выкачать? Или например к двум таблицам? Т.е. в базе штук 10 таблиц ... а я хочу инфу из 2ух выкачать. Можно как-то цепляться только к определенному числу таблиц? К таблицам цепляться не надо, цепляться нужно к базе, а уже после этого проводить операции с таблицами например выбрать всё: "SELECT * FROM your_table" nightshine Еще вопрос, если там в одном каталоге 2 базы лежит к какой он зацепиться? Ты же только путь указываешь, а название самой базы как-то нужно указывать? В каталоге не может лежать две базы, *.dbf это не база - это таблица, а база это сам каталог. В случае когда в каталоге лежит ещё один каталог с файлами *.dbf то ты сможешь работать только с таблицами того каталога, который указан у тебя в connectionstring. С таблицами из подкаталога ты работать не сможешь, для этого нужно будет цепляться непосредственно к самому вложенному каталогу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2006, 09:39 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
Спасибо большое, все, что хотел узнал! Еще вот есть вопрос: может ли быть такое, что когда я считываю из dbf файла, то часть данных отображается, как пустая, хотя на самомо деле данные не там есть, адекватные. Если может, как с этим бороться. Вопрос вызван тем, что ситая поле типа Date (или аналог, не знаю как в FoxPro называется) там считываются одни нули через ":". Я и не знаю, то ли там не заполненная база, толи я что не так делаю! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2006, 11:51 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
nightshineСпасибо большое, все, что хотел узнал! Еще вот есть вопрос: может ли быть такое, что когда я считываю из dbf файла, то часть данных отображается, как пустая, хотя на самомо деле данные не там есть, адекватные. Если может, как с этим бороться. Вопрос вызван тем, что ситая поле типа Date (или аналог, не знаю как в FoxPro называется) там считываются одни нули через ":". Я и не знаю, то ли там не заполненная база, толи я что не так делаю! Если все правильно делать, то такого не бывает... В FoxPro есть тип данных дата - если он пустой, то в зависимости от установок может быть по разному... Можете просмотреть в просмотрщике DBF этот файл или в FoxPro, чтобы убедиться, что там нет данных или выложить тут если файл небольшой и мы уж тут посмотрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2006, 23:19 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
Вот код. Пытаюсь считать данные из базы. в результате кидает эксепшен: Непредвиденная ошибка драйвера внешней базы данных (8715). Причем это если скопировать файлы с индексами .CDX. Без них выдает другой эксепшен: Индекс не найден. Скажите как с этим бороться, потому что я думал заработает, а сейчас проверил, даже данные выходит не могу считать!!! Dim oleConnect As New OleDb.OleDbConnection Dim oleCommanda As New OleDb.OleDbCommand Dim oleReader As System.Data.OleDb.OleDbDataReader Dim Path As String = "Здесь прописан путь к базе" Dim adapter As OleDbDataAdapter Dim ds As New DataSet Try oleConnect.ConnectionString = String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=dBASE IV;User ID=Admin;Password=", Path.ToString) oleCommanda.Connection = oleConnect oleCommanda.CommandType = CommandType.Text oleCommanda.CommandText = "SELECT * FROM MyTable" adapter = New OleDbDataAdapter(oleCommanda) oleConnect.Open() adapter.Fill(ds, "MyTable") oleConnect.Close() MessageBox.Show(ds.Tables.Item(0).Columns.Item(0).ToString) Catch ex As Exception MessageBox.Show(ex.ToString) Finally If Not oleConnect Is Nothing Then If oleConnect.State <> ConnectionState.Closed Then oleConnect.Close() End If End If End Try MessageBox.Show("Таблица создана.", "Экспорт данных") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.05.2006, 08:33 |
|
||
|
Доступ к dbf через VB
|
|||
|---|---|---|---|
|
#18+
Вся проблема в том, что нужно добавить в реестр параметр в раздел HKEY_LOCAL_MACHINE ->Software -> Microsoft -> Jet-> 4.0 -> Engines -> XBase параметр BDE типа DWORD со значением 2. К сожалению это не решило проблемы у меня, ведь JET не работает с таблицей dbf (по крайней мере фокс про 2.6), если там есть хоть одно МЕМО поле. Сейчас использую VFPOLEDB.1 провайдер. Пока проблем не обнаружил. JET тоже работает замечательно, если нет МЕМО полей. Как только все сделаю отпишусь, если обнаружу еще какие-нибудь подводные камни. Код для работы с dbf-ками выложу через обоих провайдеров. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2006, 09:34 |
|
||
|
|

start [/forum/topic.php?fid=17&gotonew=1&tid=1353336]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
57ms |
get topic data: |
10ms |
get first new msg: |
5ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 226ms |
| total: | 376ms |

| 0 / 0 |
