Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Несоотсетствие типов [D6, WinME]


novi ©   (2004-06-15 18:08:00) 

Уважаемые мастера! У меня в этой процедуре выходит несоответствие типов. Не могли бы вы подсказать где ошибка.
procedure TForm1.Button1Click(Sender: TObject);
var  dat: TDate;
begin
 dat:= StrToDate(Edit1.Text);
 if dat<>0 then
   begin
     with Form1.Query1 do
       begin
         Close;
         SQL.Clear;
         SQL.Add('SELECT Id_Data');
         SQL.Add('FROM ":PROD:prodlist.db"');
         SQL.Add('WHERE');
         SQL.Add('(Id_Data="dat")');
         SQL.Add('ORDER BY Id_Data');
         Open;
       end;
     if Query1.RecordCount<>0 then
       DataSource1.DataSet:=Query1
       else begin
         ShowMessage('Таких данных нет.');
         DataSource1.DataSet:=Table1;
         end;
   end;
end;


panov   (2004-06-15 19:55:00) [1]

>tower   (15.06.04 19:51) [12]

Точно, спасибо за поправку.


tower   (2004-06-15 19:51:00) [2]

>panov ©   (15.06.04 19:41) [11]

Мне кажется нужно писать
SQL.Add('(Id_Data="'+datetostr(dat)+'")');


panov   (2004-06-15 19:41:00) [3]

SQL.Add('(Id_Data="dat")'); - здесь все правильно.

Тоже поработаю телепатом.
Наверное, dat- переменная, в которой содержится текстовое значение даты, строки с такой датой надо выбрать в запросе.
Если так, то достаточно изменить строку так:

SQL.Add('(Id_Data='+dat+')');


novi   (2004-06-15 19:37:00) [4]

Да, ошибка именно здесь SQL.Add('(Id_Data="dat")'); при выполнении появляется окно и пишет о несоответствии типов. В столбце Id_data у меня находятся даты в формате (dd.mm.yyyy).


TUser   (2004-06-15 18:36:00) [5]

Не знаю. Просто dat у него - локальная пееременная типа TDate. Я предположил, что вряд ли ее значение пролезет в строковою константу. Хотя, мб он с "dat" и пытается сравнить ??


Piter   (2004-06-15 18:31:00) [6]

TUser (15.06.04 18:26) [5]
но он пытается Id_data сравнивать с "dat". получается несоотвествие


а откуда ты знаешь, что такое у него Id_data? Тоже телепатией увлекаешься ? :)


Piter   (2004-06-15 18:30:00) [7]

PVOzerski (15.06.04 18:23) [4]
А строчку с проблемой указать нельзя? Кстати, в D3 всё скомпилировалось


со временем начинаешь немного телепатией увлекаться. Мне кажется проблема не в ошибке компилятора, а в том, что во время выполнения у него возникает такая ошибка... то есть, движок базы ему это выдает... хотя могу ошибаться... навыки телепатии развиты не до 100%


Piter   (2004-06-15 18:27:00) [8]

TUser (15.06.04 18:21) [3]
Здесь

> SQL.Add('(Id_Data="dat")');


да нет, тут все правильно


TUser   (2004-06-15 18:26:00) [9]

Скомпилироваться-то оно скомпилируется, но он пытается Id_data сравнивать с "dat". получается несоотвествие.


PVOzerski   (2004-06-15 18:23:00) [10]

А строчку с проблемой указать нельзя? Кстати, в D3 всё скомпилировалось.


TUser   (2004-06-15 18:21:00) [11]

Здесь

> SQL.Add('(Id_Data="dat")');


Piter   (2004-06-15 18:20:00) [12]

а ты не мог бы подсказать на какой строчке у тебя выдается несоответствие типов?


Piter   (2004-06-15 18:20:00) [13]

и что вообще пишет...

блин, опять все клещами приходится вытягивать :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо