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

Вниз

Поиск с сортировкой   Найти похожие ветки 

 
ПикулевЕвгений   (2002-04-08 05:57) [0]

Необходимо в таблице DBGrid показать заправки >20 литров, по выбранному номеру АЗС и номеру смены, затем показать в отдельном пункте общее количество заправок.
Я пишу следующее:
Query1.SQL.Text:="select Cod_AZS,Shnum,Volum from "aaa.dbf" where Volum>20";
Query1.ExecSQL;
В таблице ничего не меняется, что делать?


 
fnatali ©   (2002-04-08 06:49) [1]

Проверь, существует ли связь между Qquery1,DataSource и DBGrid?
Если да, то попробуй написать select... в свойстве SQL самого Query1 и установить свойство Active в True. Для начала можно даже записать select ... без условия where.
Проверь, есть ли у тебя в таблице aaa.dbf такие данные, которые ты надеешься выбрать.


 
ПикулевЕвгений   (2002-04-08 08:56) [2]

Связь у всех есть через DataSourse1 и Table1, вставляю в саму SQL select... и включаю activ=true все работает нормально, но желаемого результата нет.


 
Alexandr ©   (2002-04-08 09:00) [3]

Query1.open;


 
ПикулевЕвгений   (2002-04-08 10:12) [4]

Query1.open;
Молчит DBGrid даже не шевелится.
Ну ктонибудь помогите!


 
MCFire   (2002-04-08 10:18) [5]

Попробуй сначала закрыть набор Query.Close звтем выполни запрос а потом опять открой Query.Open.


 
MCFire   (2002-04-08 10:22) [6]

P.S. Перед выполнением запроса очисть SQL Короче код будет такой:
Query.Close;
Query.SQL.Clear;
Query.SQL.Add("select Cod_AZS,Shnum,Volum from "aaa.dbf" where Volum>20");
Query.ExecQuery;
Query.Open;


 
MCFire   (2002-04-08 10:26) [7]

Упс извеняюсь Вместо Query.ExecQuery надо Query.ExecSQL


 
Alexandr ©   (2002-04-08 10:26) [8]

как это
ExecQuery а потом Open.

Люди, думайте хоть иногда чего вы тут пишите. И если не знаете, то не пишите всякий бред.
А Пикулеву Евгению можно порекомендовать посмотреть примеры работы с базами данных в Demo, которые идут вместе с Delphi.


 
Johnmen ©   (2002-04-08 10:27) [9]

Как было сказано, надо корректно прописать свойства...
DBGrid1.DataSource->DataSource1.DataSet->Query1


 
MCFire   (2002-04-08 10:30) [10]

> Alexandr
Ну может ты и прав Open может и не надо но это не смертельно


 
Ramil   (2002-04-08 10:31) [11]

ExecSQL обрабатывает только запросы, которые не возвращают DataSet"ы (типа INSERT, DELETE и т.д.). Для SELECT надо либо
Query1.open, либо Query1.Active:=True;


 
Alexandr ©   (2002-04-08 10:36) [12]

2MCFire: Ну это уже слишком. По количеству написанного бреда в этой конференции ты на первом месте


 
ПикулевЕвгений   (2002-04-08 10:42) [13]

Выполнил все действия как сказал MCFire, выдается ошибка "cannot perform this operation on an open dataset"


 
Johnmen ©   (2002-04-08 10:46) [14]

В какой момент выдается-то ?


 
gek   (2002-04-08 10:49) [15]


Query.Active:=false;
Query.SQL.Clear;
Query.SQL.Add("select Cod_AZS,Shnum,Volum from "aaa.dbf" where Volum>20");
Query.Active:=true;



 
Alexandr ©   (2002-04-08 10:50) [16]

2ПикулевЕвгений: А ты б его поменьше слушал.
Давай так.
приведи тут текст- как у тебя написано, мы посмотрим и скажем как надо было написать, чтоб все работало. Там же все очень просто, а мы тут уже пол для гадаем...


 
MCFire   (2002-04-08 10:51) [17]

Народ ну я не знаю я написл вон тот код и у меня всё работает...


 
MCFire   (2002-04-08 10:54) [18]

Alexandr Попрошу не хамить я с этими базами уже 4 года работаю


 
MCFire   (2002-04-08 11:14) [19]

Alexandr кстати без Open работать не будет.Я проверил так что у меня всё правильно
Query.Close;
Query.SQL.Clear;
Query.SQL.Add("select Cod_AZS,Shnum,Volum from "aaa.dbf" where Volum>20");
Query.ExecІЙД;
Query.Open;



 
MCFire   (2002-04-08 11:14) [20]

Alexandr кстати без Open работать не будет.Я проверил так что у меня всё правильно
Query.Close;
Query.SQL.Clear;
Query.SQL.Add("select Cod_AZS,Shnum,Volum from "aaa.dbf" where Volum>20");
Query.ExecSQL;
Query.Open;



 
ПикулевЕвгений   (2002-04-08 11:16) [21]


procedure TForm1.Button2Click(Sender: TObject);
begin

Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add("select Cod_AZS,Shnum,Volum from "aaa.dbf" where Volum>20");
Query1.Open;
Query1.ExecSQL;


end;
После нажатия на кнопку выдается ошибка
"cannot perform this operation on an open dataset


 
Alexandr ©   (2002-04-08 11:20) [22]

конечно, без Open работать не будет. Тут ExecSQL лишнее.
Поэтому и ошибка выдается.



 
MCFire   (2002-04-08 11:23) [23]

Сначала Exec а потом Open вот и ошибка в этом


 
Fareader ©   (2002-04-08 11:24) [24]

Убери Query1.ExecSQL.
Напиши что у тебя в свойстве Datasource Grid`a написано,
К какому Datasource подключен Query1?


 
ПикулевЕвгений   (2002-04-08 11:26) [25]

ошибки нет но DBGrid не отображает нужной информации


 
dim- ©   (2002-04-08 11:27) [26]

и посмотри нет ли в гриде настроенных на другие поля колонок :)


 
MCFire   (2002-04-08 11:30) [27]

ПикулевЕвгений Он вобще ничего не отображает или не выполняет запрос???


 
Alexandr ©   (2002-04-08 11:32) [28]

в гриде самый левый столбец( серый, узкий) там треугольник появляется?


 
Fareader ©   (2002-04-08 11:41) [29]

Еще раз:
1. Напиши что у тебя в свойстве Datasource Grid`a написано.
2. К какому Datasource подключен Query1?


 
ПикулевЕвгений   (2002-04-08 12:15) [30]

В гриде отображается вся несортированная таблица Table1, и треугольник там есть, послевыполнения кода ни чего не меняется.

У меня один datasourse1 и Query и Grid подключен к нему, в свою очередь datasourse подключен к table1 (aaa.dbf)


 
Alexandr ©   (2002-04-08 12:23) [31]

слушай, ты что, издеваешься над нами?
Ты же говорил, что у тебя в гриде нихрена нет ?!
Чего же после выполнения кода должно меняться? Этот код как раз и показывает результат запроса в гриде.


 
Fareader ©   (2002-04-08 12:30) [32]

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

Ты можешь переписать конкретно

1. Напиши что у тебя в свойстве Datasource Grid`a написано.
2. К какому Datasource подключен Query1?

прямо из объект инспектора?


 
MCFire   (2002-04-08 12:35) [33]

Тебе надо dataSource подключить к Query, а грид подключить к DataSource Это ж элементарно...


 
roottim   (2002-04-08 13:04) [34]

>MCFire загляни в хелп там все по ExecSQL написано и не спорь с Alexandr ©? он прав!
>ПикулевЕвгений Query и Table это разные НД (наборы данных)
если ты используеш Table то нужно использовать фильтр, если Query , как ты приводиш.
только для каждого НД нужен свой DataSource и соотв-но в грид ты подключаеш тот DS который тебе нужен!


 
ПикулевЕвгений   (2002-04-08 13:04) [35]

1.В свойствах DataSourse Grid и Query стоит DataSourse1.
2. Что нужно поставить в Dataset компонента DataSourse1.
3. Нужно ли использовать объект TTable для связи Grid с Datasourse, если нет то что нужно использовать. При отсутствии Table в отображении Грида все исчезает.

MCFire: может я скину тебе весь код посмотришь и скажешь чем помочь?


 
Alexandr ©   (2002-04-08 13:06) [36]

все. Хана.


 
MCFire   (2002-04-08 13:09) [37]

Давай скинь...Я исправлю и верну


 
ПикулевЕвгений   (2002-04-08 13:15) [38]

Alexandr © Почему?
MCFire Я скинул на ящик


 
Fareader ©   (2002-04-08 13:16) [39]

М-да, случай тяжелый и запущеный...
Изучайте книги по работе с БД в Delphi.


 
MCFire   (2002-04-08 13:19) [40]

А вообще-то можно так
1.Убери из Query DataSource и оставь пустым оно тебе не надо
2.Если у тебя данные первоначально отображаются из Table1, то поставь в DataSource1.DataSet Table1
3.В DBGrid dataSource поставь DataSource1
4.В событие нажатия кнопки на выполнение запроса напиши следующее:
dataSource1.DataSet:=Query;
Query.Close;
Query.SQL.Clear;
Query.SQL.Add("select Cod_AZS,Shnum,Volum from "aaa.dbf" where Volum>20");
Query.ExecSQL;
Query.Open;

Если не поможет пришли исходники



 
MCFire   (2002-04-08 13:23) [41]

Пришло щас посмотрю подожди


 
fnatali ©   (2002-04-08 13:26) [42]

У тебя на форме Query1,DataSource1 и DBGrid1
DataSource1.DataSet - выбери там Query1
DBGrid1.DataSource1 - выбери DataSource1
Query1.active поставь в true и смотри результат


 
Johnmen ©   (2002-04-08 13:30) [43]

>MCFire : Если человек упорно не желает читать книги по работе с БД в Delphi, то есть заниматься самообучением, то тебе , конечно, просто необходимо написать за него его прогу...
Желаю удачи !


 
MCFire   (2002-04-08 13:35) [44]

Всё принимай почту я всё сделал


 
ПикулевЕвгений   (2002-04-08 13:37) [45]

Qury1 в DataSet не встает.
>Johnmen © Были бы книги, сам бы с удовольствием разобрался а так методом тыка приходится, ((.


 
ПикулевЕвгений   (2002-04-08 13:39) [46]

Мужики подскажите где еще можно хороший хелп по базам с Дельфи найти!


 
Alexandr ©   (2002-04-08 13:42) [47]

нет. Это не метод тыка.
Метод тыка, это когда сам до всего доходишь.
К тому-же в интернете информации на эту тему валом. И книги не надо.

А тебя просто принципиально ломает до чего либо доходить самому, искать, пробовать а это уже клиника.


 
Anatoly Podgoretsky ©   (2002-04-08 13:43) [48]

MCFire (08.04.02 13:19)
Что здесь делают две эти строчки?

Query.ExecSQL;
Query.Open;


 
fnatali ©   (2002-04-08 13:49) [49]

>Qury1 в DataSet не встает.
Как это - "не встаёт"? :))))
Там список выбора, и если у тебя Query1 на этой же форме расположен - то тебе нужно щёлкнуть левой кнопкой мышки с правой стороны свойства DataSet у компонента DataSource1. затем в списке выбрать Query1.


 
MCFire   (2002-04-08 14:03) [50]

Так работает или нет???


 
VAleksey   (2002-04-08 14:09) [51]

Ну ни фига себе чего тут делается ....
> moderator можь удалить нафиг эту ветку или в раздел треп переместить.
А вообще просто феноменально ! Я такого не слышал никогда !ъ
> ПикулевЕвгений у тебя делфи вообще есть ? Если есть то куда хелп то мог дется ? Какого хелпа тебе еще надо
> MCFire присоединяюсь к тому,что это полная фигня писать Query1.execSql; а потом Query1.Open.
Это делается только в случае если не известно какого вида запрос, и то нужно одну из строк включать в защищенный блок. Иначе ошибка неминуема



 
Alexandr ©   (2002-04-08 14:19) [52]

http://www.metalweb.ru/forum/read.php?f=14&i=33&t=33

посмотрите. Примерно похоже на этот тред. Прикольно


 
arhelon ©   (2002-04-08 14:35) [53]

2 Alexandr ©
А чё ты ругаешься моно скопировать ентот разговор и послать куданюдь в компюмор моно и 1 место отхватить. :))


 
arhelon ©   (2002-04-08 14:42) [54]

2 Alexandr © Ссылка рулез !!!!!!!!!!


 
Севостьянов Игорь ©   (2002-04-08 16:17) [55]

Дааа, ребята, ну вы тут наворотили...
Нет чтоб сразу ответить по делу...
Я просто в шоке писать "SELECT" и при этом "ExecSQL"
Ну, блин, книги прежде читать надо, а потом за программирование браться или хоть {DELPHI}\Demos глянуть...


 
Val ©   (2002-04-08 16:33) [56]

"IronHawk Returns..."


 
VAleksey   (2002-04-09 07:00) [57]

присоединяюсь !!!!!!!!!!!!!!
2 Alexandr © Ссылка рулез !!!!!!!!!!


 
Alexandr ©   (2002-04-09 07:04) [58]

закиньте эту ссылку в "потрепаться", а то меня туда заглядывать ломает. Пусть и другие посмеются...


 
Sandra   (2002-04-19 21:19) [59]

Идиоты


 
Boo ©   (2002-04-20 18:36) [60]

Согласен с последним возражением! :-))



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

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

Наверх




Память: 0.6 MB
Время: 0.015 c
4-50162
writer
2002-03-12 15:47
2002.05.16
Работа с треем.


3-49839
Александр Арсентьев
2002-04-18 10:01
2002.05.16
InterBase


1-49905
beginner
2002-05-02 20:15
2002.05.16
Shareware


4-50181
zondor
2002-03-13 19:29
2002.05.16
Clipboard


3-49877
Kolyan
2002-04-19 16:36
2002.05.16
Как перевести базу в SQL Server?