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

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

Unknown type параметра. [D7, Paradox]


ViktorZ ©   (2006-02-23 10:19:00) 

Главное когда запрос был проще все работало.
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'.
Вроде и параметры использую и даже указал их тип. Как решить. В инете полно таких тем, но делая то что там написано не помогает. Когда запрос был просще работало, а щас нет.


ViktorZ   (2006-02-23 18:13:00) [1]

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


msguns   (2006-02-23 17:19:00) [2]

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


ViktorZ   (2006-02-23 16:48:00) [3]


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

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


msguns   (2006-02-23 10:58:00) [4]

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

;))


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

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

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

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


ViktorZ   (2006-02-23 10:48:00) [6]

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


msguns   (2006-02-23 10:46:00) [7]

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

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


ViktorZ   (2006-02-23 10:45:00) [8]

Ок. Спасибо


msguns   (2006-02-23 10:44:00) [9]

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

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

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


Наверх

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