|
|
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйста, разобраться. Мне нужен способ подключения к таблицам db и dbf. Понятно как это сделать через прописанный dsn. Но мне надо подключаться напрямую к файлам. Путь к файлу выдает другой компонент. Как должна выглядеть ConnectionString для такого случая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 13:31 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
BasileusПомогите, пожалуйста, разобраться. Мне нужен способ подключения к таблицам db и dbf. Понятно как это сделать через прописанный dsn. Но мне надо подключаться напрямую к файлам. Путь к файлу выдает другой компонент. Как должна выглядеть ConnectionString для такого случая? ??? Непонятно... Способов много. Ты чем хочешь пользоваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 13:46 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Я хочу подрубиться через COM к ADODB, создать объект Connection и далее по списку. Я никак не могу понять, как через Connection соединение установить без использования dsn прописанного в ODBC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2005, 14:46 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Господа. Может все же хоть кто-нибудь подскажет общее направление решения проблемы. Надо подключаться к файлам db и dbf, имея только местонахождение файла. Для dbf в принципе можно вручную написать, но как показывает мой опыт - там куча разных вариантов и время от времени попадаются файлы которые хрен откроешь по обычной схеме, тогда как через вьюеры они читаются. Хочется использовать какой-нибудь стандартный проверенный механизм типа ADO... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 09:15 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Если в .NET, то может вот это поможет?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 09:51 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
BasileusЯ хочу подрубиться через COM к ADODB, создать объект Connection и далее по списку. Я никак не могу понять, как через Connection соединение установить без использования dsn прописанного в ODBC Используй при открытии Connection строку подключения, типа: "Provider=MSDASQL;Driver=Microsoft dBase Driver(*.dbf) ;DBQ=c:\\mytable.dbf" ну и тд и тп... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 11:08 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
ASP-скрипт при попытке протестировать строки подключения типа "Provider=MSDASQL;Driver=Microsoft dBase Driver(*.dbf) ;DBQ=c:\\mytable.dbf" ругается следующим образом: [Microsoft][Диспетчер драйверов ODBC] Источник данных не найден и не указан драйвер, используемый по умолчанию /tester/tester1.asp, line 11 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 13:40 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Да єто очень просто чувак. Смотри вот строка подключения. "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB;Extended Properties=DBASE III" Вот тебе мой пример: ::CoInitialize(NULL); try { _ConnectionPtr con("ADODB.Connection"); con->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DB;Extended Properties=DBASE III","","",0); _RecordsetPtr rset("ADODB.Recordset"); rset->Open("D:\\Table1.dbf", (IDispatch*)con, adOpenDynamic, adLockOptimistic, adCmdTable); FieldsPtr m_Set = rset->Fields; rset->MoveFirst(); AfxMessageBox(_bstr_t(m_Set->Item[L"Name"]->Value)); rset->Close(); con->Close(); } catch (_com_error& e) { GenerateError(e.Error(),e.Description()); } ::CoUninitialize(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2005, 17:27 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Ну ни в какую не прокатывает у меня такая строка подключения. Делаю системный dsn и использую его, вот так примерно: Код: plaintext 1. 2. 3. 4. - connection открывается, но это не то, что мне надо... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 10:14 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Странно, на VC++ 6.00 без DSN работает... В указанной строке подключения есть небольшая неточность, а именно: вместо Driver=Microsoft dBase Driver(*.dbf) ; надо бы Driver={Microsoft dBase Driver(*.dbf) }; можно указать еще DefaultDir= c:\ (короче каталог, где у тебя таблицы лежат) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 10:36 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Ну я исходно работаю в C++Builder, хотя скрипт в конечном итоге должен работать на левом серваке через cgi. Я уже перебробовал туеву хучу всяких вариантов. В итоге заработало вот это: L"Provider=MSDASQL.1;Extended Properties=\"DBQ=D:\\;DefaultDir=D:\\;Driver={Microsoft dBase Driver (*.dbf)};\"" Почему именно так - в упор не догоняю. Сейчас буду пробовать на серваке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 10:58 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Ага. А вот это уже не пашет: L"Provider=MSDASQL.1;Extended Properties=\"DBQ=D:\\;DefaultDir=D:\\;Driver={Microsoft Paradox Driver (*.db)};\"" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 11:14 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
простой способ быстро построить и проверить строку соединения: 1)создай пустой файл с расширением udl (например в блокноте) 2)кликни по нему мышкой 3)дальше не забывай "проверить соединение" в файле udl будет сохраняться строка соединения - ее надо подсунуть как ConnectionString с учетом ограничений C++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2005, 15:14 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Со строками подключения разобрался наконец-то. Есть чудесный ресурс: www.connectionstrings.com Вроде как там все строки подключения рабочие приведены. Только сразу воткнулся в другую дурацкую проблему. Как в C++Builder засунуть sql-строчку в метод recordset.Open? В библиотеке типов он описан как: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. В msdn подробности не описаны и пример там через VC++... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2005, 11:39 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
BasileusСо строками подключения разобрался наконец-то. Есть чудесный ресурс: www.connectionstrings.com Вроде как там все строки подключения рабочие приведены. Только сразу воткнулся в другую дурацкую проблему. Как в C++Builder засунуть sql-строчку в метод recordset.Open? А что, справки по С++Билдеру нет? Или ты хочешь на чистом API писать? Вообще-то это делается так (если создавать необходимые компоненты динамически, а не "набрасывать на форму"): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 07:23 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
В дополнение - цитата из Билдеровкого хелпа: [quote] Provides direct access to the ADO recordset object. typedef System::DelphiInterface< _Recordset > _di__Recordset; __property _di__Recordset Recordset = {read=FRecordsetObject, write=SetRecordset}; Description Recordset is the interface through which the records of an ADO dataset are accessed. Use Recordset to get direct access to the ADO recordset object the dataset component represents. This direct access reference allows an application to use properties and methods of the underlying recordset object. Accessing the underlying recordset object is especially useful for utilizing properties and methods of the recordset object not surfaced in ADO dataset components. Ordinarily, an application would seldom need to access the underlying recordset object directly. One situation that would use such access is directing the recordset produced by the execution of a TADOCommand component. In these situations, assign the recordset returned by the TADOCommand::Execute method directly to the Recordset property. ADODataSet1->Recordset = ADOCommand1->Execute(); Note: Use of CommandObject to directly access the underlying ADO command object requires a good working knowledge of ADO objects in general and the ADO command object in specific. It is not recommended that you use the command object directly unless familiar with command object operations. Consult the Microsoft Data Store SDK help for specific information on using ADO command objects.[/quote] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 07:36 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Станислав C.А что, справки по С++Билдеру нет? Или ты хочешь на чистом API писать? У меня проблема несколько более эзотерическая. Приложение мне нужно для веба, чтоб работало через cgi и стандартный поток вывода. Соответственно обычный оконный билдерный проект отпадает, остается консолька. А туда я никак не могу ничего похожего на Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 10:12 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
BasileusСо строками подключения разобрался наконец-то. Есть чудесный ресурс: www.connectionstrings.com Вроде как там все строки подключения рабочие приведены. Только сразу воткнулся в другую дурацкую проблему. Как в C++Builder засунуть sql-строчку в метод recordset.Open? В библиотеке типов он описан как: Код: plaintext 1. 2. 3. 4. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. В msdn подробности не описаны и пример там через VC++... А что за нули в конце: pRs->Open(Source, Connection, 0, 0, 0 ) ? В VC++ 6.00 можно так: Код: plaintext spCon - указатель на соединение Просто с таблицами не работал (в основном запросы), но если подставить последний параметр (ado20::adCmdText) как ado20::adCmdTable, то szQuery я думаю можно представить как L"members" и должна открыться таблица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 11:07 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Basileus Станислав C.А что, справки по С++Билдеру нет? Или ты хочешь на чистом API писать? У меня проблема несколько более эзотерическая. Приложение мне нужно для веба, чтоб работало через cgi и стандартный поток вывода. Соответственно обычный оконный билдерный проект отпадает, остается консолька. А туда я никак не могу ничего похожего на Код: plaintext 1. Вот тебе пример... Но заметь - на форму я компоненты не выкладывал, а создавал их динамически в консоли!!! Естественно, что при создании проекта я выбрал проект типа Console Application, а затем немного его подправил ( некоторые параметры в файле *.bpr + "заголовок" main-функции), чтобы оно стало "истинно" Win32 Application. Приложение работает "на ура" и его видно разве что на панели задач (в свернутом виде)... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 12:47 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Станислав C.Вот тебе пример... Но заметь - на форму я компоненты не выкладывал, а создавал их динамически в консоли!!! Естественно, что при создании проекта я выбрал проект типа Console Application, а затем немного его подправил ( некоторые параметры в файле *.bpr + "заголовок" main-функции), чтобы оно стало "истинно" Win32 Application. Приложение работает "на ура" и его видно разве что на панели задач (в свернутом виде)... А какие именно параметры надо изменить в файле проекта? Что-то никак не могу скомпилировать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2005, 15:08 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Basileus Станислав C.Вот тебе пример... Но заметь - на форму я компоненты не выкладывал, а создавал их динамически в консоли!!! Естественно, что при создании проекта я выбрал проект типа Console Application, а затем немного его подправил ( некоторые параметры в файле *.bpr + "заголовок" main-функции), чтобы оно стало "истинно" Win32 Application. Приложение работает "на ура" и его видно разве что на панели задач (в свернутом виде)... А какие именно параметры надо изменить в файле проекта? Что-то никак не могу скомпилировать... В том виде, в котором я его привел, это уже "измененный" вариант (функция main заменена на WinMain. При этом ее тело оставлено без изменений (если исключить разбор командной строки вместо массива argv[])). Параметры которые меняются в файле *.bpr: - для консольных приложений "a-la DOS" в тегах должны присутствовать: <LFLAG value="{что-то там} -ap - Tpe {что-то там} /> <ALLOBJ value=" c0x32.obj {что-то там}" /> - для консольных приложений "a-la Windows" в тегах должны присутствовать: <LFLAG value="{что-то там} -aa - Tpe {что-то там} /> <ALLOBJ value=" c0w32.obj {что-то там}" /> Кроме того, return false в функции WinMain препятствует отрисовке консольного окна на экране, а return true - наоборот... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 06:41 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Basileus Станислав C.Вот тебе пример... Но заметь - на форму я компоненты не выкладывал, а создавал их динамически в консоли!!! Естественно, что при создании проекта я выбрал проект типа Console Application, а затем немного его подправил ( некоторые параметры в файле *.bpr + "заголовок" main-функции), чтобы оно стало "истинно" Win32 Application. Приложение работает "на ура" и его видно разве что на панели задач (в свернутом виде)... А какие именно параметры надо изменить в файле проекта? Что-то никак не могу скомпилировать... В дополнение: Еще должен быть файл *.bpf (он создается автоматом при создании консольного приложения). У меня он выглядит так: Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 06:47 |
|
||
|
Подключение к *.db и *.dbf через ADO
|
|||
|---|---|---|---|
|
#18+
Basileus Станислав C.Вот тебе пример... Но заметь - на форму я компоненты не выкладывал, а создавал их динамически в консоли!!! Естественно, что при создании проекта я выбрал проект типа Console Application, а затем немного его подправил ( некоторые параметры в файле *.bpr + "заголовок" main-функции), чтобы оно стало "истинно" Win32 Application. Приложение работает "на ура" и его видно разве что на панели задач (в свернутом виде)... А какие именно параметры надо изменить в файле проекта? Что-то никак не могу скомпилировать... И еще одно: При создании консольного приложения надо оставить "галочку" на опции "Use VCL"!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2005, 06:55 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33464095&tid=2032206]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
65ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
| others: | 244ms |
| total: | 425ms |

| 0 / 0 |
