Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

DBGRID... [D7, WinXP]


Страницы:   1 2 3 4

Litva ©   (2004-04-16 13:20:00) 

Пишу такой код выдает ошибку "Field in order by must be in result set". В чем проблема, Мастера?

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
form1.Query1.SQL.Clear;
form1.Query1.SQL.Text:=('select * from events order by '+ column.FieldName);
form1.Query1.Active:=true;
end;


Litva   (2004-04-16 15:03:00) [21]

Izvenite, ponimaju 4to ja vas zakolebal.. Sorry


Litva   (2004-04-16 14:58:00) [22]

Sorry.. DB ne pokazal.. no sei4as nereagiruet


Litva   (2004-04-16 14:56:00) [23]

Pokazyvaet oshibku
field in order by must be in result set


roottim   (2004-04-16 14:51:00) [24]

и еще раз...
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var vFieldName: String;
begin
vFieldName := Column.FieldName;
Query1.Close;
Query1.SQL.Text:='select * from events order by '+ vFieldName;
Query1.Open;
end;


roottim   (2004-04-16 14:50:00) [25]

не спорю :)
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var vFieldName: String;
begin
vFieldName := Column.FieldName;
Query1.SQL.Close;
Query1.SQL.Text:='select * from events order by '+ vFieldName;
Query1.Open;
end;


Плохиш   (2004-04-16 14:48:00) [26]

>roottim   (16.04.04 14:47) [36]

> и наверно лучше объясняь небольшим кодом, а не словами

Может и лучше, но только кодом без ошибок


roottim   (2004-04-16 14:47:00) [27]

2Плохиш   (16.04.04 14:38) [35]
> После закрытия источника данных, поля в нём уничтожаются (не существуют) и соответственно столбцов в связанном dbgrid-е тоже
это так, но если нет статичного определения TColumns

а если нет.. то все верно...
и наверно лучше объясняь небольшим кодом, а не словами
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var vFieldName: String;
begin
 vFieldName := Column.FieldName;
 Query1.SQL.Close;
 Query1.SQL.Text:='select * from events order by '+ column.FieldName;
 Query1.Open;
end;


Плохиш   (2004-04-16 14:38:00) [28]

>Litva ©   (16.04.04 14:32) [29]

Ну наконец-то пришли к ветке, указанной в [5]

PS. Объясняю на пальцах: После закрытия источника данных, поля в нём уничтожаются (не существуют) и соответственно столбцов в связанном dbgrid-е тоже. Что делать? Сохранять fieldname во временную переменную до закрытия источника данных и не вести себя как чукча, который писатель.


myor   (2004-04-16 14:38:00) [29]

[26] нет, папа старенький, пусть один из кардиналов.
как скопировал, так и вышло - тороплюсь же сделать доброе дело.


myor   (2004-04-16 14:36:00) [30]

[29] извини, что-то я не понял.
так, вернемся во времена адама

приведи код запроса, который выводит данные в грид (не тот, которым ты хочешь сортировать!)


Litva   (2004-04-16 14:36:00) [31]

ni4evo ne meniajet...


bushmen   (2004-04-16 14:35:00) [32]

>myor ©   (16.04.04 14:28) [26]

А скобку за тебя будет папа Римский закрывать?


Vlad   (2004-04-16 14:34:00) [33]

form1.убери


Litva   (2004-04-16 14:32:00) [34]

>myor
sei4as nazav na raznyje stolbcy pokazyvaet 'select * from events, klientai order by ' i nazvanyje stolbca


Плохиш   (2004-04-16 14:32:00) [35]

Не понятно, код в [24] работает или нет?


Litva   (2004-04-16 14:29:00) [36]

On pokazal stolbik NR


myor   (2004-04-16 14:28:00) [37]

form1.Query1.SQL.Text:=('select * from events, klientai order by '+ column.FieldName


Reindeer Moss Eater   (2004-04-16 14:26:00) [38]

Выполнить

select Nr from klientai

в sql експлорере


Litva   (2004-04-16 14:23:00) [39]

kod sei4as:

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
begin
form1.Query1.Active:=false;
form1.Query1.SQL.Text:=('select * from klientai order by '+' Nr');
ShowMessage(form1.Query1.SQL.Text);
form1.Query1.Active:=true;
end;


Reindeer Moss Eater   (2004-04-16 14:22:00) [40]

Edit1.Text:=form1.Query1.SQL.Text;

CTRL+C

и сюда

CTRL+V


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо