Текущий архив: 2004.07.04;
Скачать: CL | DM;
Вниз
Несоотсетствие типов Найти похожие ветки
← →
novi (2004-06-15 18:08) [0]Уважаемые мастера! У меня в этой процедуре выходит несоответствие типов. Не могли бы вы подсказать где ошибка.
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;
← →
Piter © (2004-06-15 18:20) [1]а ты не мог бы подсказать на какой строчке у тебя выдается несоответствие типов?
← →
Piter © (2004-06-15 18:20) [2]и что вообще пишет...
блин, опять все клещами приходится вытягивать :)
← →
TUser © (2004-06-15 18:21) [3]Здесь
> SQL.Add("(Id_Data="dat")");
← →
PVOzerski © (2004-06-15 18:23) [4]А строчку с проблемой указать нельзя? Кстати, в D3 всё скомпилировалось.
← →
TUser © (2004-06-15 18:26) [5]Скомпилироваться-то оно скомпилируется, но он пытается Id_data сравнивать с "dat". получается несоотвествие.
← →
Piter © (2004-06-15 18:27) [6]TUser (15.06.04 18:21) [3]
Здесь
> SQL.Add("(Id_Data="dat")");
да нет, тут все правильно
← →
Piter © (2004-06-15 18:30) [7]PVOzerski (15.06.04 18:23) [4]
А строчку с проблемой указать нельзя? Кстати, в D3 всё скомпилировалось
со временем начинаешь немного телепатией увлекаться. Мне кажется проблема не в ошибке компилятора, а в том, что во время выполнения у него возникает такая ошибка... то есть, движок базы ему это выдает... хотя могу ошибаться... навыки телепатии развиты не до 100%
← →
Piter © (2004-06-15 18:31) [8]TUser (15.06.04 18:26) [5]
но он пытается Id_data сравнивать с "dat". получается несоотвествие
а откуда ты знаешь, что такое у него Id_data? Тоже телепатией увлекаешься ? :)
← →
TUser © (2004-06-15 18:36) [9]Не знаю. Просто dat у него - локальная пееременная типа TDate. Я предположил, что вряд ли ее значение пролезет в строковою константу. Хотя, мб он с "dat" и пытается сравнить ??
← →
novi (2004-06-15 19:37) [10]Да, ошибка именно здесь SQL.Add("(Id_Data="dat")"); при выполнении появляется окно и пишет о несоответствии типов. В столбце Id_data у меня находятся даты в формате (dd.mm.yyyy).
← →
panov © (2004-06-15 19:41) [11]SQL.Add("(Id_Data="dat")"); - здесь все правильно.
Тоже поработаю телепатом.
Наверное, dat - переменная, в которой содержится текстовое значение даты, строки с такой датой надо выбрать в запросе.
Если так, то достаточно изменить строку так:
SQL.Add("(Id_Data="+dat+")");
← →
tower (2004-06-15 19:51) [12]>panov © (15.06.04 19:41) [11]
Мне кажется нужно писать
SQL.Add("(Id_Data=""+datetostr(dat)+"")");
← →
panov © (2004-06-15 19:55) [13]>tower (15.06.04 19:51) [12]
Точно, спасибо за поправку.
Страницы: 1 вся ветка
Текущий архив: 2004.07.04;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.029 c