|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Всем доброго времени суток! Как-то уже обращался к форумчанам с подобной проблемой, но не нашёл отклика. Проблема следующая: в VB6 создаю форму, при помощи которой я вывожу базу данных Access в DataGridView по выбору через CommonDialog. Без использования CommonDialog по аналогичному алгоритму база данных беспроблемно отображается в Grid. При попытке использовать CommonDialog для работы с множетсвами баз возникает ADO-ошибка, связанная с построением SQL-запроса(как я предполагаю). Ниже приведу код, который я использую(если в нём увидите синтаксические ошибки - не обращайте внимания : я переехал на другой системник и ещё не успел поставить Basic , код набирал в Блокноте). Заранее спасибо за помощь! Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 10:54 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
JamesMilnerНиже приведу кодА можно полюбопытствовать, за каким хреном определены две одноимённые переменные strRequest - уровня модуля и уровня процедуры Combo1_Click? А вы понимаете, что в этой процедуре присвоение будет выполнено в локальную переменную, которая немедленно, в момент завершения метода, будет благополучно похерена? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 11:15 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Akina, если это возможно , то поправьте меня. В процедуру Combo я задаю переменную для определения SQL-запроса. А в процедуре модуля переменная нужна, чтобы RecordSource определял, какую именно таблицу нужно выводить в Grid ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 11:18 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
JamesMilnerВ процедуру Combo я задаю переменную для определения SQL-запроса. А в процедуре модуля переменная нужна, чтобы RecordSource определял, какую именно таблицу нужно выводить в GridМужик! Это две РАЗНЫЕ переменные!!! Одна - грубо говоря, Form1.Module.strRequest, а вторая Form1.Module.Combo1_Click.strRequest. И, ясен пень, присвоение значения в одну с последующим использованием значения другой заканчивается полной хреновнёй. Удали определение переменной из метода. Оставь только определение на уровне модуля. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 12:24 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Akina, убрать-то я уберу, но в коде тогда нет ссылки на то, что должно выгружаться в Grid после нажатия Combo. Как мне быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 13:12 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Я же сказал убрать "определение переменной". Но не присвоение ей значения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 13:31 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Akina, я убрал, но это к изменениям не привело. Прошёлся в пошаговом режиме и по-прежнему ругается на Refresh. Склоняюсь к тому, что в SQL-запросе загвоздка, но не могу определить какая(( ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:43 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
JamesMilnerпо-прежнему ругается на RefreshЭто новая информация. Но бесполезная - ибо рефрешей в коде двое. JamesMilnerСклоняюсь к тому, что в SQL-запросе загвоздкаНу так выведи его после присвлоения в переменную да посмотри... или нам покажи - тоже вариант. Кстати, CommandTypeEnum Values полагает, что CommandType = 4 - это adCmdStoredProc. А у тебя содержимое strRequest как-то слабо напоминает имя хранимой процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 15:38 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Akina, на первом Refresh - е сразу выдаёт ошибку. А изменение CommandType ни к чему не приводит толковому : вместо предыдущей ошибки ADO выскакивает типична " Syntax error in From clause" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 15:55 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
JamesMilnerвместо предыдущей ошибки ADO выскакивает типична " Syntax error in From clause" Ну так это требуется понимать буквально. Как и просьбу Акина показать нам содержимое strRequest на момент возникновения ошибки PS: Честно говоря, я не помню, разве в RecordSource нужно передавать не recordset? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 16:56 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
adodc - бяка, выбросьте и больше не используйте. делайте на прямом ADODB.Recordset ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 16:59 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Konst_Oneadodc - бяка, выбросьте и больше не используйте. делайте на прямом ADODB.Recordsetу ТС вообще проблема в коммондиалоге (если ему верить, конечно ) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 18:54 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Shocker.Pro, вариант с указанием конкретной таблицы в RecordSource работает исправно Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 10:44 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
JamesMilnerизменение CommandType ни к чему не приводит толковому : вместо предыдущей ошибки ADO выскакивает типична " Syntax error in From clause" 1) На какое именно значение меняете CommandType? 2) Запрос-то собранный покажите, да... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 11:17 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
JamesMilner, один из форумчанинов дал мне следующий совет, но я не до конца осознаю, как мне наложить его на свой код: "При установлении соединения вы указываете только имя файла БД, а в строке работы с ней - имя таблицы. Что мешает сделать в ComboBox или, используя что-то ещё, выбор имени таблицы? Назначаете строковую переменную. например "Таблица", заносите в неё выбранное имя таблицы и всё. " Код: vbnet 1.
........ conn.Execute "INSERT INTO [Таблица] ............................. " [/SRC] ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 11:23 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
[quot JamesMilner]JamesMilner, один из форумчанинов дал мне следующий совет, но я не до конца осознаю, как мне наложить его на свой код: "При установлении соединения вы указываете только имя файла БД, а в строке работы с ней - имя таблицы. Что мешает сделать в ComboBox или, используя что-то ещё, выбор имени таблицы? Назначаете строковую переменную. например "Таблица", заносите в неё выбранное имя таблицы и всё. " Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 11:24 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
...... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 11:28 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Konst_One, я попытался переделать код без компонента ADODC (насколько я уловил Ваш посыл) и столкнулся с такими трудностями: Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 16:26 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Konst_One, вот такая выскочила ошибка ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 16:27 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 16:39 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Konst_One, не сообразил, что нужно инициализировать Combo1_Click ? А Код: vbnet 1.
я уже перенёс в начало модуля, до меня дошло ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 15:20 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
Akina, ты был прав, присутствует синтаксическая ошибка в запросе, оттого видимо он не записывается полностью ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 16:28 |
|
Проблемы с ADO при подключении базы данных в Visual Basic 6
|
|||
---|---|---|---|
#18+
JamesMilner, догнал, что ошибка не в синтаксисе , а в том , что Combo1.ListIndex присваивается -1 ( не выбрано значение в ComboBox). Но как мне инициализировать Combo, если база не выгружается, я ума не приложу ... |
|||
:
Нравится:
Не нравится:
|
|||
02.01.2019, 16:36 |
|
|
start [/forum/topic.php?fid=60&msg=39754630&tid=2154962]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 289ms |
total: | 430ms |
0 / 0 |