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

Вниз

Как разобрать результат селекта где i*j записей?   Найти похожие ветки 

 
vegarulez ©   (2007-05-14 20:23) [0]

Привет всем мастерам.
У меня такой вопрос...

Я обычно делал сеоект который возрашал 1 рекорд с n филдзами и обращался к ним таким образом...


Var
MyList1: Tstringlist;
i,j:integer;
x:string
begin
 i:=0;
 j:=0;

....

          MyList1 := TStringList.Create;
           With Datamodule2.SQLQuery2 do
            begin
             if Active then Close;
              SQL.Text := SELECT * FROM z where a=""+ x +""";
               try
                  Open;
                      While not Eof do
                       begin
                        MyList1.Append(Fields[j].AsString);
                        Next;
                        j:=j+1;
                       end;
                except on E:Exception do
                 ShowMessage(E.Message);
               end;
            end;


Теперь вопрос...
пытаюсь провести селект такого плана:
select a, b from z where Id>1
То бишь возращается i на  j записей...
Вопрос как разобрать? (т.е. обратится к i-ой j-ой записи)


 
DrPass ©   (2007-05-14 20:32) [1]


>                       While not Eof do
>                        begin
>                         MyList1.Append(Fields[j].AsString);
>
>                         Next;
>                         j:=j+1;
>                        end;

И чё, так у тебя работало корректно?


 
Loginov Dmitry ©   (2007-05-14 20:52) [2]

> То бишь возращается i на  j записей...


Это как так?


 
vegarulez ©   (2007-05-15 15:38) [3]

DrPass ©   (14.05.07 20:32) [1]
>                         Next;
>                         j:=j+1;

Местами перепутал
 j:=j+1;                    
 Next;
                   

Loginov Dmitry ©   (14.05.07 20:52) [2]

ну то бишь раньше возращалась  запись 1 вот такого вида

--------------
| Id | a | b | ...
--------------
| 1  | x | y | ...
--------------

Теперь же у меня допустим выдаются данные такого вида

--------
| a | b |
--------
| x | y |
--------
| x | Y |
--------
| x | y |
--------
|...| ...|
--------


 
Desdechado ©   (2007-05-15 15:45) [4]

Чтоб обратиться к содержимому записи, нужно на нее перейти.
Locate, First, Next, Last, Prior
и особнячком GotoBookmark


 
DrPass ©   (2007-05-15 15:51) [5]


> vegarulez ©   (15.05.07 15:38) [3]

А хоть так, хоть так. Правильное перемещение по полям одной записи выглядит как-нибудь так:
For j:=0 to Fields.Count - 1 do
MyList1.Append(Fields[j].AsString);
...и без всяких while not eof, это уже нужно для перемещения по записям
Т.е. если у тебя много полей и много записей, то будет выглядеть так:
While not Eof do
begin
 For j:=0 to Fields.Count - 1 do
 MyList1.Append(Fields[j].AsString);
 Next;
end;


 
Sergey13 ©   (2007-05-15 16:06) [6]

> [3] vegarulez ©   (15.05.07 15:38)
> | x | y |
> --------
> | x | Y |
> --------
> | x | y |

Я бы добавил еще одно поле, хотя бы вычисляемое, строковое, длинной в 1 символ. С буквой "Й".
Тогда вывод примет законченный вид. 8-)



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

Форум: "Начинающим";
Текущий архив: 2007.06.03;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.058 c
2-1179133630
Zahadom
2007-05-14 13:07
2007.06.03
Копированиет с индикатором - ёлки-палки!


15-1176923405
Чапаев
2007-04-18 23:10
2007.06.03
гы-гы-гымн свободному ПО


2-1179133124
dobry
2007-05-14 12:58
2007.06.03
отображение memo поля


2-1178972587
SKIPtr
2007-05-12 16:23
2007.06.03
Как запустить процедуру


11-1156319353
Thaddy
2006-08-23 11:49
2007.06.03
little bug 2.37 + fpc





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский