|
|
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
Добрый день всем. У меня такой вопрос: есть ли в VB параметризованные запросы? Что имеется в виду. В Яве, например, можно сделать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Можно ли такое сделать в VB? Если нет, то можно ли (и как), не закрывая соединения (используется ADODB.Connection), выполнить в его рамках другой запрос? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 11:49:35 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
Используя Data Environment: Создаем Command1 Конструируем запрос, где надо ставим параметр (? - в столбик Criteria) В коде: Call DataEnvironment1.Command1(Список занчений параметров) Пользуемся рекордсетом rsCommand1 то-же - для другой Command Если надо использовать rsCommand1 после разрыва подключения, назначить ему LockType = adBatchOptimistic Можно все в коде. но труднее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 12:07:38 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
Рекомендую посмотреть свойсво Prepared объекта ADODB.Command Файл справки - ADO210.CHM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 12:10:25 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
2 Worobjoff: А можно небольшой примерчик или ссылочку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 12:14:22 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
Пример можно создать самому: 1. Создаем новый проект в VB6 (тип - "DataProject") 2. Находим DataEnvironment (для простоты лучше сразу переименовать его в DE1) 3. Открываем свойства Connection1 и настраиваем подключение (SQL-Server, “Northwind”) 4. Создаем объект Command (ищем там конструктор запроса). Или просто в SQL Statement кидаем SELECT CustomerID, CompanyName FROM Customers WHERE (CompanyName LIKE ?) 5. В форме frmDataEnv создаем кнопку. 6. Обработчик кнопки: Private Sub Command1_Click() Dim s As String If DE1.Connection1.State = adStateClosed Then DE1.Connection1.Open Call DE1.Command1("A%") s = "" Do Until DE1.rsCommand1.EOF s = s & DE1.rsCommand1.Fields(1) & "" & vbCrLf DE1.rsCommand1.MoveNext Loop MsgBox s If DE1.rsCommand1.State = adStateOpen Then DE1.rsCommand1.Close Call DE1.Command1("B%") s = "" Do Until DE1.rsCommand1.EOF s = s & DE1.rsCommand1.Fields(1) & "" & vbCrLf DE1.rsCommand1.MoveNext Loop MsgBox s If DE1.Connection1.State = adStateOpen Then DE1.Connection1.Close End Sub Запускаем, убеждаемся, что работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 13:04:17 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
2 Worobjoff: Что-то не могу найти DataEnvironment... У меня VBA, если быть точным, а не VB. Это что-то меняет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 20:06:58 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
Я бы рекомендовал DE не использовать. Глючная и противная штука чреватая проблемами. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 21:23:37 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
2 Magnus23: А как без DE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2004, 23:41:30 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
Что есть ДЕ? Некий дизайнер содержащий коллекции рекордсетов, команд и соеденений. С пулом соеденений у него отдельная история. Очень нехорошая. Но сейчас не об этом. Все те же команды и рекордсеты лучше создавать руками имея при этом больше контроля над происходящим. Сделать можно разными способами. Можно создать команду, в ней параметр и просто изменяя его значение выпонять команду по новой. А можно и (сори у меня глюки, английский напрочь отвалился) Рекордсет.Опен (селект *....) Закрывать соеденение, собственно, никто не заставляет. Можно отсоеденить от него рекордсет если есть в том необходимость, а потом подсоеденить заново. Magnus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 01:20:50 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
Private Sub Form_Load() conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=SERVER0" 'SERVER0 - имя MS SQL Server cm.CommandText = "SELECT CustomerID, CompanyName FROM Customers WHERE (CompanyName LIKE ?)" cm.ActiveConnection = conn End Sub Private Sub Command1_Click() Dim s As String If conn.State = adStateClosed Then conn.Open Set rs = cm.Execute(, "A%") s = "" Do Until rs.EOF s = s & rs.Fields(1) & "" & vbCrLf rs.MoveNext Loop MsgBox s If rs.State = adStateOpen Then rs.Close Set rs = cm.Execute(, "B%") s = "" Do Until rs.EOF s = s & rs.Fields(1) & "" & vbCrLf rs.MoveNext Loop MsgBox s End Sub Magnus23Я бы рекомендовал DE не использовать. Глючная и противная штука чреватая проблемами. Что за проблемы? Кроме как при создании инсталляции проблем не встречал. А вот чтобы изучить ADO - отличная штука. Ну а о том, чтобы в коде... да, сам часто создаю rs в коде, но тогда, когда SQL очень простой или на оборот слишком сложный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 08:43:17 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
Относительно DataEnvironment - никогда его не использовал, ибо какой от него толк? Также не пользуюсь Data контролом Пользуюсь только Microsoft ActiveX Data Objects 2.x Library Причина здесь проста - "Зачем нам кузнец? нам кузнец не нужен" Зачем использовать дополнительные обёртки к ADO если можно работать непосредственно с ADO? При этом работаю с большими и малыми БД, и горя не знаю. Возможно единственное применение DataEnvironment и Data-контрола - программирование мышкой в 8-м классе на уроке информатики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 10:07:13 |
|
||
|
Параметризованные запросы к БД - есть ли и как?
|
|||
|---|---|---|---|
|
#18+
marvan, а какой-нибудь броузер БД (или навигатор) используешь, или все помнишь? А если да, то наверно там есть и построитель запросов, и анализатор, etc.? Для начинающих (и не только 8й) пойдет и DE. Data контрол... согласен, кроме как навигатора по записям ни для чего больше не годтся. Да и навигатр сегодня выглядит архаично. лучше вместо него - табличка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2004, 12:34:16 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32768480&tid=2168665]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 311ms |

| 0 / 0 |
