Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.07.2013, 01:10   #21
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Вот я видюшку записал. Как еще я не знаю. Вот код
Код:
procedure TForm2.orgClick(Sender: TObject);
var
i,j,NomVer, RecCnt:integer;
mas: array[0..5] of string;
begin
if org.Items.Count <>0 then
begin
// Query1.Active:=false;
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('SELECT cena.Complect, cena.Cena, compl.skidka, compl.skidka_rub, compl.fix, compl.po_cene, compl.version, compl.summ');
Query1.SQL.Add('FROM org INNER JOIN (cena INNER JOIN compl ON cena.id_cena = compl.id_cena) ON org.id_org = compl.id_org');
Query1.SQL.Add('WHERE org.nazv=:q');
Query1.Parameters.ParamByName('q').Value:=org.Items[org.ItemIndex];
//Query1.Active:=true;
Query1.Open;
{Query1.ExecSQL;
Query1.First;}
RecCnt:=Query1.RecordCount;
i:=1;
sg.RowCount:=1;
sg.RowCount:=2;
sg.FixedRows:=1;
while not Query1.Eof do
begin
  inc(i);
  sg.RowCount:=i;
  sg.Cells[0,i-1]:=Query1.Fields[0].AsString;
  sg.Cells[2,i-1]:=Query1.Fields[1].AsString;
if Query1.Fields[2].Value<>'0' then sg.Cells[3,i-1]:=Query1.Fields[2].AsString
else sg.Cells[3,i-1]:='0';
if Query1.Fields[3].Value<>'0' then sg.Cells[4,i-1]:=Query1.Fields[3].AsString
else sg.Cells[4,i-1]:='0';
if Query1.Fields[4].Value<>'0' then sg.Cells[5,i-1]:=Query1.Fields[4].AsString
else sg.Cells[5,i-1]:='0';
if Query1.Fields[5].Value<>'0' then sg.Cells[6,i-1]:=Query1.Fields[5].AsString
else sg.Cells[6,i-1]:='0';

  mas[0]:='Ëîê';
  mas[1]:='Ôëåø';
  mas[2]:='ñ1';
  mas[3]:='ñ5';
  mas[4]:='ñ50';
  mas[5]:='Online';
  
if Query1.Fields[6].Value=mas[0] then sg.Cells[1,i-1]:='Ëîê';
if Query1.Fields[6].Value=mas[1] then sg.Cells[1,i-1]:='Ôëåø';
if Query1.Fields[6].Value=mas[2] then sg.Cells[1,i-1]:='ñ1';
if Query1.Fields[6].Value=mas[3] then sg.Cells[1,i-1]:='ñ5';
if Query1.Fields[6].Value=mas[4] then sg.Cells[1,i-1]:='ñ50';
if Query1.Fields[6].Value=mas[5] then sg.Cells[1,i-1]:='Online';

   sg.Cells[7,i-1]:=Query1.Fields[7].AsString;

Query1.Next;
end;
CurRow:=1;
procent.Text:=sg.Cells[3,1];
rub.Text:=sg.Cells[4,1];
fix.Text:=sg.Cells[5,1];
cb.ItemIndex:=cb.Items.IndexOf(sg.Cells[6,1]);
cbVer.ItemIndex:=cbVer.Items.IndexOf(sg.Cells[1,1]);
if cbVer.Text='Ôëåø' then cbLoc.Visible:=true else
begin
  cbLoc.Checked:=false;
  cbLoc.Visible:=false;
end;

Query2.Active:=false;
Query2.SQL.Clear;
Query2.SQL.Add('SELECT compl.flash');
Query2.SQL.Add('FROM org INNER JOIN (cena INNER JOIN compl ON cena.id_cena = compl.id_cena) ON org.id_org = compl.id_org');
Query2.SQL.Add('WHERE ((cena.Complect)=:compl) AND ((org.nazv)=:nazv);');
Query2.Parameters.ParamByName('compl').Value:=sg.Cells[0,CurRow];
Query2.Parameters.ParamByName('nazv').Value:=org.Items[org.ItemIndex];
Query2.Active:=true;
Query2.ExecSQL;
Query2.First;
if Query2.Fields[0].Value='0' then cbLoc.Checked:=false else cbLoc.Checked:=true;
BitBtn1.Enabled:=true;
BitBtn3.Enabled:=true;
if RecCnt=0 then
begin
  sg.Cells[0,1]:='';
  sg.Cells[1,1]:='';
  sg.Cells[2,1]:='';
  sg.Cells[3,1]:='';
  sg.Cells[4,1]:='';
  sg.Cells[5,1]:='';
  sg.Cells[6,1]:='';
  sg.Cells[7,1]:='';
  cbVer.ItemIndex:=-1;
  cbLoc.Checked:=false;
  cbLoc.Visible:=false;
  procent.Text:='';
  rub.Text:='';
  fix.Text:='';
  cb.ItemIndex:=-1;
  BitBtn1.Enabled:=false;
  BitBtn3.Enabled:=false;
end;
end;// if org.Items.Count <>0 then
end;
Вложения
Тип файла: rar tratata.rar (425.2 Кб, 6 просмотров)
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 01:37   #22
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от alfikss Посмотреть сообщение
Я понимаю что ExecSQL пишется в случаях вызова процедур и т.д., но т.к. это не является ошибкой при вызове SELECT, то его и использую. А Query1.Active := True я всегда так делал и все работало.
Ну хоть бы что-нибудь прочитали бы прежде чем "кодить".
Ну хотя бы вот это Урок 21: Объект TQuery
northener вне форума Ответить с цитированием
Старый 29.07.2013, 01:46   #23
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,869
По умолчанию

Цитата:
Сообщение от alfikss Посмотреть сообщение
Вот я видюшку записал.
А вот тут я могу согласиться, что это глюк связки "Оптимизатор+Отладчик".
northener вне форума Ответить с цитированием
Старый 29.07.2013, 08:31   #24
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Блин ребят. Читайте что я вам отвечаю.
Еще раз. В коде куча запросов селект прекрасно работающих связкой
Код:
Query1.Active:=true;
Query1.ExecSQL;
Да и этот запрос РАБОТАЛ!!!!
Цитата:
А вот тут я могу согласиться, что это глюк связки "Оптимизатор+Отладчик".
и что делать?
Цитата:
Ну хоть бы что-нибудь прочитали бы прежде чем "кодить".
Ну хотя бы вот это Урок 21: Объект TQuery
Поверьте, я, перед тем как обращаться на форум, потно юзаю поиск.
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 08:45   #25
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

sg - это обычный стандартный TStringGrid, банально помещённый на форму в режиме DesingTime ?

Вы отладку не остановили на том, что показано в видео, надеюсь..
и что, в цикл while not Query1.Eof do программа уже не заходит?!
Фильтры на Query1 никакие не стоят?

ну, прямо не знаю, что Вам делать.
Вот, просто любопытно.
Попробуйте так:
Код:
...
RecCnt:=Query1.RecordCount;
ShowMessage(' #1. RecCnt = '+IntToStr(RecCnt)+'  RecordCount = '+IntToStr(Query1.RecordCount));
i:=1;
sg.RowCount:=1;
ShowMessage(' #2. RecCnt = '+IntToStr(RecCnt)+'  RecordCount = '+IntToStr(Query1.RecordCount));
sg.RowCount:=2;
sg.FixedRows:=1;
sg.FixedRows:=1;
while not Query1.Eof do
begin
  ShowMessage(' #3. RecCnt = '+IntToStr(RecCnt)+'    RecordCount = '+IntToStr(Query1.RecordCount));
  inc(i);
  sg.RowCount:=i;
.....
давайте начнём с того, что Вы расскажите/покажите, какие мессаджи у Вас выдадутся!



p.s. если проект не секретный и достаточно легко отчуждаемый (ну, значит нет лишних компонентов и можно приложить БД к проекту), то может быть, сделаете тестовую версию и выложите в архиве исходники.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.07.2013, 09:00   #26
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Цитата:
sg - это обычный стандартный TStringGrid, банально помещённый на форму в режиме DesingTime ?
Именно он
Цитата:
1) Вы отладку не остановили на том, что показано в видео, надеюсь..
2) и что, в цикл while not Query1.Eof do программа уже не заходит?!
3) Фильтры на Query1 никакие не стоят?
1) Нет=) Просто нужно было обрезать до 500кб для фложения.
2) Вот имеено в этом и проблема =(
3) Нет.
Цитата:
давайте начнём с того, что Вы расскажите/покажите, какие мессаджи у Вас выдадутся!
Прилагаю. Сообщение 3 не выдалось.
Изображения
Тип файла: png 1.png (9.5 Кб, 49 просмотров)
Тип файла: png 2.png (9.1 Кб, 48 просмотров)
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 09:09   #27
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Вот база. Данные вставил для теста. Такая же фигня
Вложения
Тип файла: rar bd.rar (25.4 Кб, 5 просмотров)
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 09:12   #28
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Прилагаю. Сообщение 3 не выдалось.
а сообщение #2 выдалось?!


Цитата:
Вот база. Данные вставил для теста. Такая же фигня
О!! зачем нам ваша база без вашей программы?!?!!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.07.2013, 09:39   #29
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

Цитата:
а сообщение #2 выдалось?!
Ага. В приложении жеж.
Цитата:
О!! зачем нам ваша база без вашей программы?!?!!!
Я уже на работу убежал. Через пару часиков домой приду - скину.
alfikss вне форума Ответить с цитированием
Старый 29.07.2013, 09:39   #30
alfikss
Пользователь
 
Регистрация: 07.05.2013
Сообщений: 24
По умолчанию

База думал для того, что бы этот кусок кода проверить=)
alfikss вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RecordCount в dbExpress при запросе SELECT с параметром Leximus БД в Delphi 0 31.05.2012 09:50
Сброс ОС PashaSoscov Операционные системы общие вопросы 5 07.01.2012 23:00
QTimer, сброс Vanta11a Qt и кроссплатформенное программирование С/С++ 2 13.09.2011 13:32
Listview vs сброс bulldog5293 Общие вопросы Delphi 0 13.01.2011 21:46
Проблема с RecordCount в SQLQuery Stalevar БД в Delphi 2 23.04.2009 18:57