Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / connection для выполнения sp / 12 сообщений из 12, страница 1 из 1
01.03.2001, 17:07
    #32002656
AnS1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
Проблема
в ADO можно использовать connection для непосредственного выполнения хр. процедуры.
К примеру, cnn.yourSP "parameter", rs, где yourSP - имя хр. пр, "parameter" - передаваемый параметр (ы - через ,),
rs - возвращаемый RecordSet.
Всё нормально работает, если у процедуры имеются параметры. А вот если их нет? Если пр-ра не возвращает rs, то тоже нормально -
cnn.yourSP и ok, а если возвращает, то такой синтаксис cnn.yourSP , rs - выдает ошибку "Type name is invalid"
...
Рейтинг: 0 / 0
01.03.2001, 21:17
    #32002665
Fompro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
По-моему в конференции уже об этом упоминалось, посмотрите, стоит ли
SET NOCOUNT ON в теле процедуры.
...
Рейтинг: 0 / 0
02.03.2001, 07:09
    #32002674
AnS1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
не получается
процедура такая
CREATE PROCEDURE utility_clsProdGroup_GetList
AS
set nocount on
select prod_group_id, prod_group_name from clsProdGroup order by prod_group_name

на клиенте
Dim ProdGroupGetList as ADODB.Recordset
Set ProdGroupGetList = New ADODB.Recordset
ProdGroupGetList.CursorLocation = adUseClient
mCN.utility_clsProdGroup_GetList , ProdGroupGetList

результат - вышеназванная ошибка
...
Рейтинг: 0 / 0
02.03.2001, 18:02
    #32002703
Павел
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
Пошли на Visual Basic (просто продублируй свой вопрос). Там и позарубаемся. Дело в том, что, на мой взгляд, эта конференция посвящена СЕРВЕРУ. А ADO - это абсолютно клиентский компонент, причем, как я выяснил, существуют кардинальные различия его преминения в VB и Delphi. Т.к. код вопроса VB - туда нам и дорога. Заодно оживим мертвую конфу.
...
Рейтинг: 0 / 0
02.03.2001, 18:12
    #32002705
DmitryGolubev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
CREATE PROC [ EDURE ] procedure_name [ ; number ]
[ { @parameter data_type }
[ VARYING ] [ = default ] [ OUTPUT ]
] [ ,...n ]

По моему VARYING как раз для таких целей ( сам не пробовал )
...
Рейтинг: 0 / 0
02.03.2001, 18:18
    #32002706
DmitryGolubev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
Попробуй так

sSQL = "MySP "& Param1 &", "& Param2 &""
Set rsTest = Connection.Execute( sSQL )

В ASP такое проходила
...
Рейтинг: 0 / 0
03.03.2001, 14:17
    #32002719
AnS1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
спасибо всем
по очереди
1. на VB конференцию может и пошлю - но как-то я в них не особенно того - данная конференция,
всё же, самая профессиональная из имеющихся в России по БДs и связанным с ними вопросами (ADO и проч.)
2. VARYING - Applies only to cursor parameters, для случаев, когда параметром служит курсор
3. Динамически сгенеренна строчка - это конечно пройдет, но вот хочется поцивильному )
...
Рейтинг: 0 / 0
05.03.2001, 11:36
    #32002746
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
Поцивильному - это быстрее и надёжнее, т.е. вариант 3. Динамически сгенеренная строчка.
А "mCN.utility_clsProdGroup_GetList , ProdGroupGetList" это для студентов - для демонстрации знаний адо.
...
Рейтинг: 0 / 0
05.03.2001, 17:16
    #32002755
AnS1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
не хотелось бы ввязываться в дискуссию по поводу "правильности"
кода, но замечу, что есть определенная разница между ODBC, где
данная техника - единственно возможная, и ADO.
Что касается знания ADO - увы мне... Ежели бы знал, то, наверно,
и не спрашивал бы.
...
Рейтинг: 0 / 0
05.03.2001, 19:08
    #32002766
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
Я давал совет исходя из >3-х летней практики работы связки ADO <-> MS SQL Server.
...
Рейтинг: 0 / 0
06.03.2001, 16:54
    #32002808
AnS1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
в таком случае, было бы интересно узнать агрументы в пользу
1 надежности
2. быстроты
данной связки относительно приведенного синтаксиса.

Хотя один можно, наверно, сразу увидеть - а вдруг Microsoft откажется
от поддержки этого довольно нетривиального синтаксиса в следующих версиях ADO,
как она сделала это в VB.NET со значениями по умолч. и проч.
...
Рейтинг: 0 / 0
06.03.2001, 19:42
    #32002823
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
connection для выполнения sp
По быстроте очевидно - зачем в программе вызывать кучу методов кучи COM-интерфейсов в разных местах, когда можно вызвать 1 и всегда в одном месте?
Я имею в виду не только излишнее использование разных методов АДО, но и вообще непосредственная работа с рекордсетами в программе. Намного лучше сделать ф-цию, которой можно давать строку запроса, а она будет возвращать массив (используя метод GteRows) и вызывать её отовсюду.
Соответственно надёжность - из вышесказанного, например:
1. При непосредственной работе с рекордсетами половина текста программы - это работа с АДО (при хорошей обработке ошибок).
2. При обнаружении ошибок придётся перелопачивать тысячи файлов исходников.
3. То-же самое - при сервис-паке или новой версии АДО (например после установки новой версии IE).
И т.д.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / connection для выполнения sp / 12 сообщений из 12, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]