Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.09.2010, 19:42
Регина Регина вне форума
Прохожий
 
Регистрация: 08.04.2008
Сообщения: 15
Репутация: 10
По умолчанию Тип данных Date, DBLookopCombobox

Здравствуйте! Есть небольшая проблема. Создала бд, использую dbgrideh. adoquery datasourse Поставила dblookopcombobox в нем будет список дат (поле date_pro) - для этого использовала adoquery с запросом и datasourse. Выборка должна просиходить по кнопке Обновить.
Вот код:
Код HTML:
procedure TForm1.tlb_updateClick(Sender: TObject); var i,k: Integer; sort, fpodr, fpol, f, fcolor, fispol, fdate, s: String; begin Screen.Cursor:= crHourGlass; i:=0; while i<DBGridEh1.Columns.Count do begin DBGridEh1.Columns[i].Title.SortMarker:=smNoneEh; i:=i+1; end; DBGridEh1.SortLocal:=False; //сбросить сортировку пользователя DBGridEh1.SortLocal:=True; //сброс произведен if DB_date.KeyValue<>null then if DB_date.KeyValue<>'--' then fdate:=' AND (date_pro = '''+DB_date.KeyValue+''')' else fdate:=''; f=fdate+fcolor+fispol // отрывок кода, сюда суммируются другие выборки sql_khp.SQL.Text:='SELECT kod_map, podrotpr, podrpol, name, map, nzah, zmf, kol, date_pro, num_pro, zstate, kod_op, color, zispol, zdateinput ' + ' from dd092010 where podrotpr not like ("53%") and kod_op not like ("65") and podrpol like ("53%") ' + ' '+f+ ' ORDER BY podrotpr, podrpol ' + sort; if sql_khp.Active then sql_khp.Active:=False; sql_khp.Active:=True; Screen.Cursor:= crDefault; end;

Пишет ошибку неопределенного типа, как я поняла то ли он индекс трубует то ли что. Когда делала такую же выборку, но для полей "исполнение " и "цвет" ничего такого не было, но для них я поставила adotable а не adoquery. но с датой мне именно adoquery нужно использовать, таблица очень большая, а мне нужно выбрать в ней все числа сентября 2010 г. Вот. Помогите пожалуйста разобраться!!!!!
Ответить с цитированием
  #2  
Старый 23.09.2010, 21:30
Регина Регина вне форума
Прохожий
 
Регистрация: 08.04.2008
Сообщения: 15
Репутация: 10
По умолчанию

Помогите пожалуйста!!!!! Хотя бы немножко!
Ответить с цитированием
  #3  
Старый 24.09.2010, 00:14
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

В какой строчке-то хоть ошибка происходит? Трудно однозначно сказать, что не так. Надо отлаживать по шагам с проверкой значений.
Например посмотреть что находится в каждой из пременных тут:
Код:
f=fdate+fcolor+fispol 
Не нравится мне вот такая ваша запись:
Код:
not like ("53%") 

Здесь вообще непонятен смысл Like:
Код:
not like ("65") 
Опять-же в отладке надо посмотреть, что получается в sql_khp.SQL.Text
и т.д.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 24.09.2010, 19:02
Регина Регина вне форума
Прохожий
 
Регистрация: 08.04.2008
Сообщения: 15
Репутация: 10
По умолчанию

f=fcolor+fispol срабатывает если не плюсовать туда fdate, так что с like все порядке, на отладке там все срабатывает и на форме тоже. с ним нет проблем потому что я ихние комбобоксы связываю с datasourse и adotable. а вот с датой проблема, наверное потому что тип данных другой и еще использую adoquery.
ошибку как раз показывает что невозможно строковую операцию связать с датой, примерно так.
Код HTML:
if DB_date.KeyValue<>null then if DB_date.KeyValue<>'--' then fdate:=' AND (date_pro = '''+DB_date.KeyValue+''')' else fdate:=''; f=fdate+fcolor+fispol
в 3й строчке позывает ошибку пробовала через InttoStr, но потом показывает ошибку в sql.khp. даже незнаю что делать. база данных у меня fox
Ответить с цитированием
  #5  
Старый 24.09.2010, 19:35
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,723
Репутация: 52347
По умолчанию

Если я правильно понял, то в DB_date.KeyValue у вас лежит дата, тогда для сцепления строк ее надо преобразовать в строку DateToStr(DB_date.KeyValue) или DateTimeToStr(DB_date.KeyValue) если надо учитывать и время.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #6  
Старый 25.09.2010, 13:28
Регина Регина вне форума
Прохожий
 
Регистрация: 08.04.2008
Сообщения: 15
Репутация: 10
По умолчанию

да там дата. я и так уже пробовала, но потом он выдает ошибку о несовместимости в строке где выполняется запрос sql_khp ((((((
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:39.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025