Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.04.16;
Скачать: CL | DM;

Вниз

Unknown type параметра.   Найти похожие ветки 

 
ViktorZ ©   (2006-02-23 10:19) [0]

Главное когда запрос был проще все работало.
var vsego,ost : integer;
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Text:="SELECT SUM(M.Price),SUM(AR.qnt*AR.RealPrice) FROM Menu M "+
" LEFT OUTER JOIN ARCheck AR on AR.Sifr=M.Sifr"+
" LEFT OUTER JOIN  ADCheck AD on AD.Sys_Num=AR.Sys_Num"+
" LEFT OUTER JOIN acheck A on A.Sys_Num=AD.Sys_Num  WHERE"+
" M.Categ = 15 AND A.LogicDate BETWEEN :D1 AND :D2 AND A.Sys_Num=AD.Sys_Num AND AD.Sifr =15 ";
Query1.open;
Query1.Params[0].AsDate:= strtodate(Edit1.text);
Query1.Params[1] .AsDAte :=strtodate(Edit2.text);

//Query1.Params[2].AsInteger := strtoint( Edit3.text);

ost:=Query1.Fields[0].AsInteger;
vsego:=Query1.Fields[1].AsInteger;
Form1.Caption :=inttostr(vsego-ost);

with message "Query1: Field "Date1" is of an unknown type".
Вроде и параметры использую и даже указал их тип. Как решить. В инете полно таких тем, но делая то что там написано не помогает. Когда запрос был просще работало, а щас нет.


 
msguns ©   (2006-02-23 10:44) [1]

Query1.SQL.Clear; - лишнее
Синтаксис Джоинов: .. JOIN <TableName> ON (<Условия>)
Если в конструкции WHERE более одного условия, то каждое заключается в скобки:

WHERE (M.Categ = 15) AND (A.LogicDate BETWEEN :D1 AND :D2) AND ..

Справка Delphi->Help->Local SQL->DML


 
ViktorZ ©   (2006-02-23 10:45) [2]

Ок. Спасибо


 
msguns ©   (2006-02-23 10:46) [3]

Да, совсем забыл..

Open должен быть после всех Params[..].AsXXX := ...


 
ViktorZ ©   (2006-02-23 10:48) [4]

ОО. то то я думаю не канает.


 
msguns ©   (2006-02-23 10:51) [5]

Еще рекомендация:

Перед Open в подобных случаях (динамически изменяемый/создаваемый запрос) рекомендуется ставить Prepare.
В случае парадокса вещь в общем-то "лишняя", но тем не менее приучает к профессиональной манере программирования интерфейса с СУБД.

Если придется когда-нибудь работать с клиент-серверными делами подобная "предосторожность" сослужит добрую службу, упростив и ускорив поиски багов при отладке клиентских запросов.


 
msguns ©   (2006-02-23 10:58) [6]

И последнее :
При работу с БД старайтесь все обращения вовне (а Ваша программа обращается к услугам "сторонней" "фирмы" - BDE) писать в защищенные блоки.
В противном случае установленная на комп с криво поставленным или вовсе без BDE, Ваша программа будет "ругаться" на клиента "по-иностранному". Да еще и покажет пустые гриды или что-там у Вас служит для отображения. И будет работать как ни в чем ни бывало.
Это - тоже признак профессионализма

;))


 
ViktorZ ©   (2006-02-23 16:48) [7]


> При работу с БД старайтесь все обращения вовне (а Ваша программа
> обращается к услугам "сторонней" "фирмы" - BDE) писать в
> защищенные блоки

Можно по пожробнее об этом. А то я хочу чтоб моя прога меньше всего зависела от машины. Чот нужно чтоб она на всех пахала так как у меня.


 
msguns ©   (2006-02-23 17:19) [8]

try..except+F1
try..finally+F1
Инсталляция БДЕ с сайта Борланда на каждую РС


 
ViktorZ ©   (2006-02-23 18:13) [9]

Ok. Спасиюо. Даже не думал, что начиная с простых запросов узнаю столько нового. Особенно спасибо спасибо сайту и модераторам. за помощь. Обязательно размещу вас у ся на сайте.



Страницы: 1 вся ветка

Текущий архив: 2006.04.16;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
1-1142348475
Алик
2006-03-14 18:01
2006.04.16
Печать документа с помощью ShellExecute на default принтере


8-1131865380
Matrix186
2005-11-13 10:03
2006.04.16
Нужно изменять яркость, контраст в TImage


15-1143213902
Juice
2006-03-24 18:25
2006.04.16
Альтернатива TImageList


2-1143725492
TPot
2006-03-30 17:31
2006.04.16
Размер массива


1-1141992346
abhtr
2006-03-10 15:05
2006.04.16
Ошибка при формирвании отчета в Word2000