Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Очередной глупый вопрос теперь о переменных / 9 сообщений из 9, страница 1 из 1
14.01.2002, 19:54
    #32020685
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной глупый вопрос теперь о переменных
Дико извиняюсь за очевидные для многих но непонятные для меня вопросы. Но не мог бы кто пишущий на Delphi обьяснить как из SQL передавать параметры, переменные в Delphi если это не рекордсет а просто переменная. Довольно странно но мои попытки приводят к краху системы, Win2000 вешается "намертво" выдав сначала сообщение о обращениии к памяти $000000 (раз 50) и переполнении стека. Если можно коротенький пример передачи/получения. Спасибо заранее благодетелю который мне это обьяснит.
...
Рейтинг: 0 / 0
15.01.2002, 09:15
    #32020705
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной глупый вопрос теперь о переменных
Вопрос поставлен неполно. Во первых как организован доступ к данным - через BDE или ADO ?. Насчет откуда их передавать я подозреваю, что с хранимой процедуры. Тут еще один вопросец - она набор данных возращает или нет ? Если нет, то все просто: параметры процедуры делаете OUT. Если возращает, то для ADO тоже самое. Единственная загвоздка - если через BDE работать, то насколько помню там TStoredProc параметры обратно не считывает, если процедура еще и набор данных возращает. Хотя давно это было - может уже в Delphi 5 и возращает (в чем я лично сомневаюсь, учитывая, что SQL Link до сих пор в BDE от SQL 6.5)
...
Рейтинг: 0 / 0
15.01.2002, 18:21
    #32020757
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной глупый вопрос теперь о переменных
Говорят, правильно заданный вопрос содержит половину ответа. Что поделаеш, я даже половины не знаю. Значит дополнения к вопросу. Использую ADO, ADOCommand, CommandType=cmdText, CommandText (после всех упрощений но и так не работает) следующий

DECLARE @Num Int
SELECT @Num = Number FROM MyDbf
SELECT @Num AS 'Num'

ADOCommand.Execute возвращает пустой датасет, nil (ошибка с зависанием была от того что я пытался прочитать из него как если бы в CommandText был простой запрос типа SELECT * FROM MyDbf) все что мне надо это выташить наружу (в Delphi) значение @Num. На самом деле хотелось бы еще разобратся в механизме передачи параметров из запроса (внутрь запроса проблем нет :O).
...
Рейтинг: 0 / 0
16.01.2002, 07:28
    #32020779
Очередной глупый вопрос теперь о переменных
Для этого запроса получить значение можно только через TADODataSet, считав его из значения поля. У тебя полноценный рекордсет, забудь о выходных параметрах. Выходные параметры только для хранимых процедур.

В последней строке запроса - синтаксическая ошибка
...
Рейтинг: 0 / 0
16.01.2002, 07:31
    #32020781
Очередной глупый вопрос теперь о переменных
И скорее всего, будет пустой рекордсет, пока не поставишь вначале SET NOCOUNT ON
...
Рейтинг: 0 / 0
16.01.2002, 09:10
    #32020799
SergSuper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной глупый вопрос теперь о переменных
Стнтаксической ошибки тут нет и SET NOCOUNT ON в данном случае ничего не меняет - присваивание переменной через SELECT не выдаёт COUNTы.

По идее всё должно работать, во всяком случае через TADOQuery. Может есть какая глупая ошибка - типа выбрана не та база или неправильное имя таблицы?
А TADOCommand осознанно используется вместо TADOQuery?


TADOCommand is most often used for executing data definition language (DDL) SQL commands or to execute a stored procedure that does not return a result set. For SQL statements that return a result set, TADODataSet, TADOQuery, or TADOStoredProc is better suited. The Execute method of TADOCommand is, however, capable of returning a recordset. To use that recordset, however, you will need a separate ADO dataset component.
...
Рейтинг: 0 / 0
16.01.2002, 09:46
    #32020804
Очередной глупый вопрос теперь о переменных
Да, действительно. Я ошибься. Съедаю шляпу.
...
Рейтинг: 0 / 0
16.01.2002, 18:01
    #32020832
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной глупый вопрос теперь о переменных
Читал пэйджер .... много думал. Люди спасибо за ответы! Благодаря вам я может быть даже допишу программу (и может быть она будет работать!.
...
Рейтинг: 0 / 0
16.01.2002, 19:30
    #32020834
Nikolay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очередной глупый вопрос теперь о переменных
А TADOCommand осознанно используется вместо TADOQuery?
Нет по глупости. Гдето читал что Query устарел и надо старатся использовать TADOCommand и TADODataSet. А кстати в TADODataSet и TADOQuery действительно возвращает непустой датасет просто в голову не пришло попробовать.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Очередной глупый вопрос теперь о переменных / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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