Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
У меня хранимая процедура возвращает несколько Recordset. Перемещаться по ним я знаю как .NextRecordset() Вопрос: А как при перемещении по ним мне узнать, что этот RecordSet последний? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2003, 11:14 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Ну наверно в цикле типа while NOT ADOQuery.EOF do begin ... чо то там делаешь; ADOQuery.NextRecordSet; end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2003, 23:25 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Это все понятно. while NOT ADOQuery.EOF do begin ... чо то там делаешь; ADOQuery.NextRecordSet;-А если следующего recordset не существует, то будет ошибка. Вообще я так и сделал только try ADOQuery.NextRecordSet except end; Но хотелось бы без try. Как узнать существует RecordSet или нет? Всю башку сломал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2003, 07:52 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Мне кажется, что вам надо последовать совету shane54. Когда отлавливаешь EOF в цикле, то насколько я понимаю, исключение не выбрасывается. Вы, на данный момент, просто пишете Next, не проверяя EOF - и, понятное дело, получаете исключение. По крайней мере я кучу раз так делал, и всё было нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2003, 22:15 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
2 shane54, senyag С каких пор EOF свидетельствует о том, что нет следующего рекордсета? 2 Eugeni А NextRecordSet разве не возвращает _Recordset ? Может, получится проверить на nil? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 07:34 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
В MSDN-е, по крайне мере, написано так: When there are no more results, recordset will be set to Nothing. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 07:51 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
а просто NEXT чем отличается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 08:30 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Отличается от чего? Если от NextRecordSet, то Next - возвращает следующую запись в текущем RecordSet-е, а NextRecordSet - следующий объект RecordSet (с другим набором данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 08:38 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
спрошу попутно while not adoquery1.eof do begin .... adoquery1.next; end; выдает ошибку как надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 08:50 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Все правильно, так и надо. Ошибки быть не должно. (Если adoquery1 не закрыто или не nil ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 09:23 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
а ведь есть! list index out ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 09:34 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Не смог добится этой ошибки. Можно исходник посмотреть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 09:41 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
count:=ADOQuery1.recordCount; Form_data.StringGrid1.RowCount:=count; for i:=1 to count do begin for j:=1 to myconst do form_data.stringgrid1.cells[j-1,i-1]:=ADOQuery1.Fields[j-].Asstring; if count<> i then ADOQuery1.next; end; вот этот бред работает while not ADOQuery1.eof do begin for j:=1 to myconst do form_data.stringgrid1.cells[j-1,i-1]:=ADOQuery1.Fields[j-].Asstring; ADOQuery1.next; end; а здесь ошибка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 09:57 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. А как здесь i считается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:01 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
забыла дописать inc(i) в цикле но ошибка не в этом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:09 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
На сколько я помню в цыкле For никаких Inc(i), т.к. цикл сам увеличивает начальную точку на 1 и потом если писпать for i:=1 to recordcount то первая запись выборки выпадет из цыкла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:17 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Похоже, что ошибка при расчете i или j. ListIndexOutOfBound - это же ошибка из коллекций, может быть Fields или Cells? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:17 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
2 Jozo Inc(i) - Это про второй кусок кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:18 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
вы меня совсем запутали напишите, плз, как из адоквейри записать в стринггрид правильно Jozo, я там где-то 1 потеряла (j-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:25 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:35 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Пардон for j := 0 to ADOQuery1.Fields.Count - 1 do ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:36 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
Еще раз Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:37 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
По поводу первого вопроса Eugeni: в борландовском хелпе (DevGuide: Developing database applications - Fetching multiple result sets) написано нижеследующее: The first time you call NextRecordSet, it returns the second set of records. Calling NextRecordSet again returns a third dataset, and so on, until there are no more sets of records. When there are no additional cursors, NextRecordSet returns nil. То есть всего то надо проверить на нил, как Артём1 и советует. 2 Артем1: насчет ЕОФ - это была лажа... Сорри... :) 2 Natalka: ошибка точно не с запросом, вещи типа while not adoquery1.eof do begin .... adoquery1.next; end; все многократно использовали в своей работе, и всё работает (только вчера писал такого типа код) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:39 |
|
||
|
Delphi+ADO
|
|||
|---|---|---|---|
|
#18+
вообще то у меня тоже самое но не работает eoleexception ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2003, 10:42 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=32105496&tid=2119126]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
80ms |
get tp. blocked users: |
2ms |
| others: | 222ms |
| total: | 401ms |

| 0 / 0 |
