Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.05.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
ПикулевЕвгений   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.53 MB
Время: 0.005 c
14-50101
Billy
2002-04-06 22:24
2002.05.16
Soft Ice


1-49935
KvORubinX
2002-04-29 08:59
2002.05.16
GIF GIF GIF GIF GIF GIF GIF формат


3-49819
ao1973
2002-04-18 11:44
2002.05.16
КАК програмно СОЗДАТЬ файл БД ACESS-a ?


3-49897
perov
2002-04-22 09:00
2002.05.16
двумерные массивы


7-50140
ut1wpr
2002-02-17 16:26
2002.05.16
Получить адреса портов из BIOSa ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский