Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.09.10;
Скачать: CL | DM;

Вниз

Как определить конец множества RecordSet - ов   Найти похожие ветки 

 
MsGuns ©   (2006-07-05 15:12) [0]

Я использую метод NextRecordset (компонеты ADO), как определить что множество RecordSet - ов закончилось? У меня почемуто приложение вылетает гдето на 5,6-ом использовании метода NextRecordset, говорит мол "Can not open Recordset", хотя наборы данных еще в результате запроса есть.


 
Fay ©   (2006-07-05 15:54) [1]

Проверка на
MyCoolADODataSet._Recordset.NextRecordset = nil
не ку? Я сам не проверял, но вроде Nextrecordset - функция...


 
MsGuns ©   (2006-07-05 16:19) [2]

Дело немного не в этом..
Во время сканирования 5-го рекордсета (который ессно, не нил), возникает эта ошибка. Причем до EOF дело явно не доходит, да и есть еще 6-й, 7-й и т .д. рекордсеты


 
Johnmen ©   (2006-07-05 16:26) [3]

Серёга, ты что в F1 не смотришь? Там и пример есть...


 
MsGuns ©   (2006-07-05 16:44) [4]

>Johnmen ©   (05.07.06 16:26) [3]
>Серёга, ты что в F1 не смотришь? Там и пример есть...

Я не только F1, я весь бол перерыл и мсдн

Подскажи, будь любезен, где эту "кляту" ф1 надо нажать, на каком компоненте ?


 
Johnmen ©   (2006-07-05 17:07) [5]


> MsGuns ©   (05.07.06 16:44) [4]


На NextRecordset естественно :)


 
sniknik ©   (2006-07-05 19:59) [6]

> "Can not open Recordset"
SET NOCOUNT ON
в начале блока команд, чтобы не было "пустышек", или не пытатся из таких данные читать.


 
Fay ©   (2006-07-05 22:32) [7]

2 sniknik ©   (05.07.06 19:59) [6]
> SET NOCOUNT ON
> в начале блока команд, чтобы не было "пустышек",
Гарантию не даёт


 
MsGuns ©   (2006-07-06 13:15) [8]

>Johnmen ©   (05.07.06 17:07) [5]
>На NextRecordset естественно :)

Жень, обижаешь ;)

>sniknik ©   (05.07.06 19:59) [6]
>SET NOCOUNT ON

Не помогает ;(


 
sniknik ©   (2006-07-06 13:28) [9]

> Не помогает ;(
ну значит у тебя именно тот случай в котором оно
> Гарантию не даёт
потому как действительно не дает... т.к. оно "локального" действия.

но есть же еще "или"
> ... или не пытатся из таких данные читать.


 
Johnmen ©   (2006-07-06 13:30) [10]


> MsGuns ©   (06.07.06 13:15) [8]


Ну как же так???
А-а-а... Понятно! Посмотрел я.
И ты выбирай хелп по TSQLStoredProc.NextRecordSet, а не по TCustomADODataSet. Там есть Example. Принцип тот же...


 
MsGuns ©   (2006-07-06 14:00) [11]

>sniknik ©   (06.07.06 13:28) [9]
>но есть же еще "или"
>> ... или не пытатся из таких данные читать.

Дело в том, что надо написать универсальную фунцию в Делфи, возвращающую метаданные MS SQL Server любого типа. Функция получает на входе тип требуемых метаданных  (структуру таблицы, списка таблиц, списка ХП, ПК и вообще чего угодно), запрашивает их у указанного сервера (БД) и возвращает в виде списка указателей на структуры соотв. типа. Такая фича у мсскл есть - sp_help. Она возвращает практически любые данные, но пихает все это в разные рекордсеты, количсетво которых может превышать десяток.

>Johnmen ©   (06.07.06 13:30) [10]
>А-а-а... Понятно! Посмотрел я.
И ты выбирай хелп по TSQLStoredProc.NextRecordSet

Кгхмм.. Блин, вот сюда я точно не смотрел. Ибо по совету своего учителя и гуру ( ;) ) sniknik ©`а не использую ее в принципе..

Щас гляну ! Спасибо в любом случае


 
Fay ©   (2006-07-06 14:35) [12]

2  sniknik ©   (06.07.06 13:28) [9]
> потому как действительно не дает... т.к. оно "локального" действия.
Empty recordset можно получитьт разными способами. Если мне не изменяет склероз, print даёт такой recordset..


 
sniknik ©   (2006-07-06 14:36) [13]

> Ибо по совету своего учителя и гуру ( ;) ) sniknik ©`а не использую ее в принципе..
про TSQLStoredProc я никогда и ничего такого не говорил, только про TADOStoredProc
а это не одно и тоже, не пользуюсь dbExpress... возможно в них у StoredProc и есть смысл...

> Такая фича у мсскл есть - sp_help.
EXEC sp_help Table1
возвращает (тестовая прога)
Выполнено:
применительно к 1 записям
применительно к 5 записям
применительно к 1 записям
применительно к 1 записям
применительно к 1 записям
применительно к 1 записям. (no recordset)
применительно к 3 записям
применительно к 3 записям. (no recordset)
применительно к 1 записям
применительно к 1 записям. (no recordset)
там где "no recordset" это "пустышки" нужные только для возврата количества обработанных данных и колекции errors... данных в них нет. читать нечего (т.е. присвоение обьекту ADODataSet даст вышеуказанную ошибку).


 
sniknik ©   (2006-07-06 14:37) [14]

> Если мне не изменяет склероз, print даёт такой recordset..
да, т.к. возвращает ошибку...


 
MsGuns ©   (2006-07-06 14:40) [15]

>применительно к 1 записям. (no recordset) (N)
>применительно к 3 записям (N+1)

Как "перепрыгнуть" через N и получить доступ к N+1 ?


 
sniknik ©   (2006-07-06 14:49) [16]

> Как "перепрыгнуть" через N и получить доступ к N+1 ?
NextRecordset...

var
 Recordset: _Recordset;
begin
 ADOCommand1.CommandText:= "EXEC sp_help Table1";
 Recordset:= ADOCommand1.Execute; //первый
 for i:= 1 to 7 do
   Recordset:= Recordset.NextRecordset; //восьмой

 ADODataSet.Recordset:= Recordset.NextRecordset; //девятый смотрим


 
Zz_   (2006-07-06 15:11) [17]

В качестве просто примера ...

http://www.sql.ru/forum/actualthread.aspx?tid=289444#2629273


 
имя   (2006-07-06 15:18) [18]

Удалено модератором
Примечание: хочеш участвовать смени имя, падонковщина на сайте запрещена в любом проявлении... в потрепатся оно еще пройдет, но не в серьезных ветках


 
MsGuns ©   (2006-07-06 17:01) [19]

>sniknik ©   (06.07.06 14:49) [16]
>for i:= 1 to 7 do
  Recordset:= Recordset.NextRecordset; //восьмой

Ошибка та же ;(((


 
sniknik ©   (2006-07-06 17:32) [20]

> Ошибка та же ;(((
я ошибся в подсчетах и ты попал на "пустышку"?

я то все получил (в [13] примеры откуда по твоему?). у тебя есть моя прога TestMdb, высылал(вредебы, не помню)? проверь в ней, может у тебя не то количество возвращается... (или на других местах)


 
другое имя   (2006-07-06 17:51) [21]

Удалено модератором
Примечание: личные претензии письмом.


 
Fay ©   (2006-07-06 19:34) [22]

Удалено модератором
Примечание: аналогично


 
хочеш   (2006-07-08 19:36) [23]

Удалено модератором



Страницы: 1 вся ветка

Текущий архив: 2006.09.10;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.036 c
3-1152175448
WhiteBarin
2006-07-06 12:44
2006.09.10
Как получить скрипт вставляемой запись в БД через FIB+ ?


15-1155632808
StriderMan
2006-08-15 13:06
2006.09.10
Отличие делфишного CASE от сишного SWITCH


15-1155370126
Loginov Dmitry
2006-08-12 12:08
2006.09.10
Тест для всех!


1-1154103712
OlDirtyBastard
2006-07-28 20:21
2006.09.10
Убрать курсор


2-1156168479
Handle
2006-08-21 17:54
2006.09.10
Про файлы