Главная страница
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;

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




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

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

Наверх




Память: 0.55 MB
Время: 0.013 c
14-50090
P.
2002-04-01 18:16
2002.05.16
Статьи


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


4-50167
nimble
2002-03-14 05:08
2002.05.16
SysTray


6-50074
серёга
2002-03-06 00:57
2002.05.16
Привет всем. Скажите как определить IP-адреса компьтеров


1-50042
MasterA
2002-04-21 20:05
2002.05.16
Архивация по алгоритму ХАФФМАНА