Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

Как определить конец множества 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.038 c
6-1145614013
TEXHAPb
2006-04-21 14:06
2006.09.10
WakeOnLan - удаленное ВКЛЮЧЕНИЕ компьютеров в сети


2-1156247678
deplhi
2006-08-22 15:54
2006.09.10
Расположение в памяти структур


5-1139313370
Нулевой
2006-02-07 14:56
2006.09.10
Как добавить BS_FLAT в BitBtn и GroupBox, CheckBox.


15-1155795515
cyborg
2006-08-17 10:18
2006.09.10
Игровые контролёры


1-1153908332
Lordalexander
2006-07-26 14:05
2006.09.10
Тип переменной





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский