Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

DBGRID...   Найти похожие ветки 

 
Litva ©   (2004-04-16 13:20) [0]

Пишу такой код выдает ошибку "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;


 
Reindeer Moss Eater ©   (2004-04-16 13:26) [1]

...
ShowMessage(form1.Query1.SQL.Text);
form1.Query1.Active:=true;


 
bushmen ©   (2004-04-16 13:37) [2]

Где-то я уже встречал точно такой же вопрос.


 
Reindeer Moss Eater ©   (2004-04-16 13:37) [3]

А я точно такой же ответ


 
Litva ©   (2004-04-16 13:42) [4]

Showmessage показывает... но как решит проблему?


 
Vlad ©   (2004-04-16 13:45) [5]

http://delphimaster.net/view/3-1082018541/
Тебе в прошлый раз все рассказали.


 
bushmen ©   (2004-04-16 13:45) [6]

>Showmessage показывает

А можно нам тоже увидеть? :)


 
Litva ©   (2004-04-16 14:06) [7]

я с литвы... Пожалуиста!..  :)


 
bushmen ©   (2004-04-16 14:08) [8]

>Litva ©   (16.04.04 14:06) [7]

Если у тебя плохо с русским, то тебе надо искать форумы на литовском языке


 
Vlad ©   (2004-04-16 14:09) [9]


> я с литвы... Пожалуиста!..  :)

Оч. приятно.

Так что там ShowMessage-то говорит ?


 
Reindeer Moss Eater ©   (2004-04-16 14:09) [10]

В Литве запрет на публиукацию в сети содержимого SQL.TEXT своих компонентов?
Надо обязательно к вам ехать что бы увидеть?


 
myor ©   (2004-04-16 14:11) [11]

чистая телепатия: поле, по которому ты кликаешь, в таблице есть events?


 
Litva ©   (2004-04-16 14:13) [12]

Ja sam litovec, a zena ruskaja... Tak uz izveni za oshibki..
no tvoji slova eщe raz dokazyvaet, 4to nacionalizm v litve i drugix postsovietskix stran delo samix ruskix... ja nekogda nebyl nacionalistam, sam rabotal za granicoj- tam toze uvazaet drugije oby4ije, nacionalnost... zal...


 
myor ©   (2004-04-16 14:13) [13]

[11]

ну, конечно так:

...есть в таблице events?


 
Vlad ©   (2004-04-16 14:16) [14]


> Litva ©   (16.04.04 14:13) [12]

Эээ... товарищ, причем тут национализм ?
Ты бы по делу говорил, тебя уже два или три раза спросили что покажет ShowMessage, вместо этого ты тут начинаешь объяснять что ты из Литвы.
Так что там по делу то ?


 
Litva ©   (2004-04-16 14:17) [15]

v litve ne zapret, tut malo saitov po povodu Delphi- vse kinuvshis na C. Literatura na angliskom doroga ~40-60 evrov, na ruskom malo(tepereshniaja molodez ruskovo ne umeet).


 
myor ©   (2004-04-16 14:17) [16]

2 [12]

перестань, это не национальный наезд, просто ребята хотят увидеть запрос, который у тебя формируется при клике.

см.
Reindeer Moss Eater ©   (16.04.04 13:26) [1]
...
ShowMessage(form1.Query1.SQL.Text);

согласись, без этого трудновато что-то предлагать.


 
Fiend ©   (2004-04-16 14:18) [17]

То Litva:
дорогой друг! не надо сюда приплетать национализм. Народ хотел посмеяться над твоим ответом не в тему, если ты сам этого не заметил!

тебя просят показать текст запроса который будет в итоге выполняться, а ты говоришь:
Я мол из Литвы - помогите! Чем тебе помочь то? если ты сам себе помогать не хочешь!


 
Litva ©   (2004-04-16 14:19) [18]

Showmessage pokazyvaet "select * from events order by "+" Nr"- ja pokazal priamo na nazvanije field (Nr)


 
Reindeer Moss Eater ©   (2004-04-16 14:20) [19]

Нихрена он не может такое показывать дорогая Литва


 
Litva ©   (2004-04-16 14:20) [20]

Ja nechotel zatejavat nienuznyx debatov- izvenite...


 
Vlad ©   (2004-04-16 14:21) [21]


> "select * from events order by "+" Nr"

не обманывай, не это у тебя ShowMеssage показывает, во всяком случае исходя из приведенного тобой кода.


 
myor ©   (2004-04-16 14:21) [22]

поле nr в таблице events?


 
Reindeer Moss Eater ©   (2004-04-16 14:22) [23]

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

CTRL+C

и сюда

CTRL+V


 
Litva ©   (2004-04-16 14:23) [24]

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:26) [25]

Выполнить

select Nr from klientai

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


 
myor ©   (2004-04-16 14:28) [26]

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


 
Litva ©   (2004-04-16 14:29) [27]

On pokazal stolbik NR


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

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


 
Litva ©   (2004-04-16 14:32) [29]

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


 
Vlad ©   (2004-04-16 14:34) [30]

form1. убери


 
bushmen ©   (2004-04-16 14:35) [31]

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

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


 
myor ©   (2004-04-16 14:36) [32]

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

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


 
Litva ©   (2004-04-16 14:36) [33]

ni4evo ne meniajet...


 
myor ©   (2004-04-16 14:38) [34]

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


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

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

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

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


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

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:48) [37]

>roottim   (16.04.04 14:47) [36]

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

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


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

не спорю :)
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;


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

и еще раз...
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;


 
Litva ©   (2004-04-16 14:56) [40]

Pokazyvaet oshibku
field in order by must be in result set


 
Litva ©   (2004-04-16 14:58) [41]

Sorry.. DB ne pokazal.. no sei4as nereagiruet


 
Litva ©   (2004-04-16 15:03) [42]

Izvenite, ponimaju 4to ja vas zakolebal.. Sorry


 
myor ©   (2004-04-16 15:06) [43]

ну, как?


 
Litva ©   (2004-04-16 15:23) [44]

ne rabotaet... :(


 
Vlad ©   (2004-04-16 15:25) [45]


> Litva ©   (16.04.04 15:23) [44]
> ne rabotaet... :(

Товарищ, давай прекращать страдать фигней.
Точно опиши, что происходит после выполнения этого кода, и приведи актуальный код снова.


 
myor ©   (2004-04-16 15:28) [46]

как ты мне дорог (ц) :)

что (как) конкретно (что делаешь) не работает?

опять телепатируемЖ

procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var vFieldName: String;
begin
vFieldName := Column.FieldName;
Query1.Close;
Query1.SQL.Text:="select * from events, klientai order by "+ vFieldName;
Query1.Open;
end;


 
roottim   (2004-04-16 15:31) [47]

1. для начала укажи тип БД
2. исходный текст покажи Query1.SQL
  а то неясно - то ли это таблица events то ли klientai
3. После Выполнения кода, после order by должно быть наименование поля таблицы
если выбор идет из 2-х таблиц и в обоих присутствует данное поле, то необходимо указать таблица.поле (или псевдоним.поле)
procedure TForm1.DBGrid1TitleClick(Column: TColumn);
var vFieldName: String;
begin
 vFieldName := Column.FieldName;
 Query1.Close;
 Query1.SQL.Text:="select * from events order by "+ vFieldName;
 ShowMessage(Query1.SQL.Text);
 Query1.Open;
end;


 
Litva ©   (2004-04-16 15:35) [48]

ponimaju, 4to delphi tiolko u4u, no ne dumal 4to nastolko tupoj( izvenite, zlius sam na sebia)...
>что (как) конкретно (что делаешь) не работает?
nazav na column.fiel(nazvanije stolbca) sortirovka ne proishodit..


 
Vlad ©   (2004-04-16 15:38) [49]


> Litva ©   (16.04.04 15:35) [48]

Еще раз настойчиво рекомендую привести актуальный код твоей процедуры, и более подробно описать, что же все таки происходит ?

> sortirovka ne proishodit..

А что происходит ? Мы же не телепаты, мы не видим то, что ты видишь на своем экране


 
myor ©   (2004-04-16 15:40) [50]

[48]
еще подробнее
по какому полю?
какие поля в запросе?
из каких таблиц?

читай [47]


 
DenK_vrtz ©   (2004-04-16 15:49) [51]

Уж дело к вечеру...

> Litva ©  

Дорогой, вам столько примеров привели и подсказок дали, что одним копированием этих примеров и модернизацией оных под свою задачу можно было добиться результатов.
Почти три часа решается ваш вопрос, а вы к его решению не приклыдваете никаких усилий.


 
myor ©   (2004-04-16 16:54) [52]

возможно, будет проще скачать ehlib и использовать dbgrideh. но с проблемой нужно разобраться. :(


 
Johnmen ©   (2004-04-16 20:33) [53]

М-да... Весело...
Такое ощущение, что автору надо бросить своё занятие и ехать заграницу, где все такие пушистые, и уж там окончательно забыть о программинге...
Не его это, не его...
:)


 
Litva ©   (2004-04-16 21:30) [54]

Ja ne programist


 
Litva ©   (2004-04-16 21:35) [55]

Izvenite za vashe potra4enoe vremia- za malo u menia znanij, 4toby vyjasniat voprosy 4erez rastojanije.... No spasibo za terpenije i ponimanie...
>Johnmen
  Mozet i ne moje, no uporstva poka xvotajet, budu u4it...


 
Vopros ©   (2004-04-19 10:21) [56]

Да земляк, надеюсь проблему уже решил:))


 
Ega23 ©   (2004-04-19 10:40) [57]

Напиши не Select * from, а перечисли все поля : Select ID, Name, .... from


 
Reindeer Moss Eater ©   (2004-04-19 10:43) [58]

Не поможет.
Всякий раз когда его просили сделать что-то одно и очень простое, после чего можно было бы сделать конкретный вывод, вместо ответа на поставленный вопрос дискуссия начиналась с совершенно новой отправной точки.


 
Ega23 ©   (2004-04-19 10:47) [59]

Да? Надо поподробней почитать, а то я ветку как-то бегло просмотрел...


 
Hawk2 ©   (2004-04-19 10:54) [60]

Reindeer Moss Eater ©   (19.04.04 10:43) [58]
Сейчас автор увидит что его посту опять уделили внимание и начнется по новой, ведь прошло два дня, небось новых вопросов накопилось... :)


 
Ega23 ©   (2004-04-19 10:58) [61]

На самом деле, когда я только начинал с базами, вопролсы у меня были не менее тупые, и я как баран не мог въехать в ответы.

2 Litva © : Не переживай, все когда-то не умели программировать.


 
Anatoly Podgoretsky ©   (2004-04-19 11:08) [62]

Hawk2 ©   (19.04.04 10:54) [60]
Почему бы и нет, ничего плохого в этом нет.



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

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.024 c
1-1083158410
snake1977
2004-04-28 17:20
2004.05.16
Порты


1-1083288886
saNat
2004-04-30 05:34
2004.05.16
Реестр


1-1083294683
hrs
2004-04-30 07:11
2004.05.16
Tlistview Проясните ситуацию


7-1080646553
pumba
2004-03-30 15:35
2004.05.16
Windows DDK


3-1082128389
начинаю
2004-04-16 19:13
2004.05.16
про TIBTable