Форум: "Базы";
Текущий архив: 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