![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DBGRID... [D7, WinXP]
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