VB и SQL. Помогите разобраться.

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

VB и SQL. Помогите разобраться.

Сообщение Александр Андреев » 09.04.2003 (Ср) 17:25

Всем привет.

У меня возникло несколько вопросов. Сейчас опишу проблему:

Имеется программа, написанная на VB (не мной). В ней есть процедура, в которой вызывается некий SQL-скрипт. Делается это следующим образом:

Сначала заводится следующая переменная:

Dim CM As New ADODB.Сommand

затем ее инициализируют:

CM.CommandType = adCmdStoredProc
CM.CommandText = "SomeSQLProc"
CM.Parameters("@param1") = ""
CM.Parameters("@param2") = ""


здесь SomeSQLProc - название SQL-процедуры, а
@param1 и @param2 - ее параметры. Сама процедура описана во внешнем файле с расширением sql. Причем явного его подключения к проекту я не увидел.
Наконец, описанная SQL-процедура вызывается на исполнение:

CM.Execute

Теперь вопросы:
- что за класс ADODB?
- как происходит подключение SQL-скрипта в программе на VB?
- где можно получить дополнительную информацию (документацию) по этой теме?

Спасибо.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 09.04.2003 (Ср) 17:52

1) Он находится в библиотеке Microsoft ActiveX Data Objects. Обеспечивает поддержку ADO.



2) Никак не происходит. SQL stored procedure исполняется как ей и положено на сервере.



3) MSDN - источник знаний ;)

ASD
Модератор
Модератор
Аватара пользователя
 
Сообщения: 1758
Зарегистрирован: 07.12.2001 (Пт) 21:08
Откуда: Russia

Сообщение ASD » 10.04.2003 (Чт) 12:17

Проще надо быть, проще.

Код: Выделить всё
Dim cn as ADODB.Connection ' Конектор к базе
Dim rs as ADODB.Recordset ' Набор записей

cn.open "тут твой коннект к базе смотри в msdn"
set rs=cn.execute("Select * from test") 'Вот твой SQL запрос.



Moderator VBStreets
---------------------------

VisMajor
Обычный пользователь
Обычный пользователь
 
Сообщения: 78
Зарегистрирован: 04.10.2002 (Пт) 10:42

Сообщение VisMajor » 11.04.2003 (Пт) 11:00

ASD писал(а):Проще надо быть, проще.

Код: Выделить всё
set rs=cn.execute("Select * from test") 'Вот твой SQL запрос.



rs.Open "select * From test", cn, adOpenKeyset, adLockOptimistic
... (запихиваем записи в ListView)
rs.Close

Подскажи пожалуйста разницу в использовании по твоему и по моему.
И как в твоем случае мне запихнуть записи в ListView, либо чем вы вести на екран.
У меня проблемка не выходит из rs в RVC отчет создать - может проблема в моем использовании rs? Все отчеты прописываю через Exel - морочно и ресурс хавает.

skiperski
Идеолог
Идеолог
Аватара пользователя
 
Сообщения: 1386
Зарегистрирован: 25.06.2002 (Вт) 15:52

Сообщение skiperski » 11.04.2003 (Пт) 13:50

ASD писал(а):set rs=cn.execute("Select * from test")


VisMajor писал(а):rs.Open "select * From test", cn, adOpenKeyset, adLockOptimistic


VisMajor писал(а):Подскажи пожалуйста разницу в использовании по твоему и по моему.

Разница в том, что в твоём случае ты можешь управлять опциональными параметрами RecordSet'а (CursorType, LockType, Options) , а в варианте предложенном ASD - нет. В остальном они одинаковы.

Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

А у меня снова проблемка...

Сообщение Александр Андреев » 11.04.2003 (Пт) 16:07

Ребят, конечно надо быть проще, но мне нельзя менять код, который кто-то до меня наляпал... я занимаюсь только фиксингом багов. :wink:

Так вот по этому поводу возникла еще одна проблема:

Когда программа пытается установить connection, возникает ошибка. Делается при этом следующее:

connectionString = _
"Provider=SQLOLEDB.1;" & _
"Password=;" & _
"Persist Security Info=True;" & _
"User ID=sa;" & _
"Initial Catalog=SomeCatalog;" & _
"Data Source=(local)"

Connection.Open connectionString


У меня есть предположение, что я как-то неправильно поставил SQL Server. Дело в том, что пару дней назад все работало, а сейчас прекратило... Еще есть предположение о провайдере SQLOLEDB, но все необходимые ему библиотеки (указанные в MSDN) установлены.

Кто нибудь скажет в чем тут дело?

Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

Да, чуть не забыл...

Сообщение Александр Андреев » 11.04.2003 (Пт) 16:27

Вот как Connection объясняет причину ошибки:

Login failed for user 'sa'. Reason: Not associated with a trusted SQL Server connection.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 11.04.2003 (Пт) 16:40

Проблема в настройке SQL сервера.

Надо прописать ему правильный Authorization mode и Security logins в Entrprise manager.

Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

Спасибо...

Сообщение Александр Андреев » 11.04.2003 (Пт) 17:12

Спасибо, но можно немного поподробнее?

Александр Андреев
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 145
Зарегистрирован: 09.04.2003 (Ср) 16:43
Откуда: Н.Новгород

ПОЛУЧИЛОСЬ

Сообщение Александр Андреев » 11.04.2003 (Пт) 17:22

Если долго мучится, что-нибудь получится. :D

Спасибо всем!


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 114

    TopList