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

Вниз

Помогите пожалуйста!   Найти похожие ветки 

 
DeNNiss   (2002-01-17 08:08) [0]

Имеется такой запрос:

with DM.Query5 do begin
SQL.Clear;
Close;
SQL.Add("SELECT * FROM DATA WHERE LPUMG = :LPUMG AND DATA = :DATA AND KABEL = :KABEL")
ParamByName("LPUMG").Value := DM.tbData.FieldByName("lpumg").AsString;
ParamByName("DATA").Value := DM.tbData.FieldByName("Data").AsDateTime;
ParamByName("KABEL").Value := DM.tbData.FieldByName("NumKabel").AsInteger;
Open;
end;


Но, ругается на последний параметр: ParamByName("KABEL").Value := DM.tbData.FieldByNamе("NumKabel").AsInteger;, пишет "Несоответствие типов данных в условии отбора"... Без этого параметра все работает зыко. В чем проблема, подскажите?


 
Turalyon   (2002-01-17 08:32) [1]

Попробуй поставить
ParamByName("KABEL").AsInteger = DM.tbData.FieldByName("NumKabel").AsInteger;
Либо вообще повыкидывай все эти параметры и делай строками, как я писал тебе в одном из примеров ниже.


 
roottim   (2002-01-17 08:39) [2]

в пр-пе должно работать!
советую посмотреть его через скажем ShowMessage... все ли правильно в синтаксисе... и соответствии типу поля


 
DeNNiss   (2002-01-17 08:47) [3]

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


 
Turalyon   (2002-01-17 09:14) [4]

>DeNNiss
Попробуй вот так

SQL.Add("SELECT * FROM DATA")
SQL.Add("where LPUMG = "" + DM.tbData.FieldByName("lpumg").AsString + """);
SQL.Add("and KABEL = " + DM.tbData.FieldByName("NumKabel").AsString);
SQL.Add("and DATA = "" + DM.tbData.FieldByName("Data").AsString + """);

Или если не будет работать
То попробуй поменять последнюю строку на такую

SQL.Add("and DATA = "" + DateToStr(DM.tbData.FieldByName("Data").AsDateTime) + """);

Да и еще не очень хорошо выглядят названия полей, особенно data (ИМХО), можно напороться на зарезервированные слова и будешь потом долго думать почему не работает.


 
Turalyon   (2002-01-17 09:15) [5]

Да не очень внятно получилось в хвостах... там написана двойная кавычка в одинарных " " "


 
Desdechado   (2002-01-17 10:03) [6]

не используй
ParamByName("KABEL").Value
это приводит к вариантному преобразованию, что в итоге будет - только дельфи знает. Используй явное AsInteger, AsDateTime и т.д.


 
DeNNiss   (2002-01-17 11:34) [7]

Нет, никак не получается, уперлось Дельфи и ни в какую :(( По разному пробовал - нифига, таже ошибка, хоть тресни....


 
Wind   (2002-01-17 12:01) [8]

Во-первых, если ты пишешь запрос для большой БД, то не советую использовать конкатенацию строк - работает намного дольше, чем через ParamByName
Во-вторых, не используй ParamByName.Value - лучше укажи явное преобразование типов.
Ну и последнее - по возможности откажись от БДЕ, если работаешь через нее например с Ораклом.


 
Turalyon   (2002-01-17 12:49) [9]

>Wind
Во-первых, если ты пишешь запрос для большой БД, то не советую использовать конкатенацию строк - работает намного дольше, чем через ParamByName
Не знал такого... А почему?

>DeNNiss
Скажи какой у тебя тип поля numKabel и тип поля KABEL???


 
plis   (2002-01-17 20:46) [10]

лучший вариант
установи DataSource к набору DM.tbData
DM.Query5.Datasuorce сошли на DataSource
и тогда не надо уже присваивать параметры

with DM.Query5 do begin
SQL.Clear;
Close;
SQL.Add("SELECT * FROM DATA WHERE LPUMG = :LPUMG AND DATA = :DATA AND KABEL = :KABEL")
Open;
end;



 
Dok_3D   (2002-01-18 07:02) [11]

>DeNNiss
Но, ругается на последний параметр: ParamByName("KABEL").Value := DM.tbData.FieldByNamе("NumKabel").AsInteger;, пишет "Несоответствие типов данных в условии отбора"...

Ставь принудительно для каждого параметра конструкцию типа -
ParamByName("KABEL").DataType:=ftInteger;


 
Леван   (2002-01-21 08:36) [12]

А какого типа kabel from DATA? numeric or decimal и величина передаваемого фактического параметра?



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

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

Наверх




Память: 0.49 MB
Время: 0.009 c
1-42736
Игорь
2002-01-30 03:09
2002.02.14
Вопрос из серии Hellow Word :)


1-42726
RUS1
2002-01-30 15:51
2002.02.14
как достать параметры , которые передаются вместе с exe при его запуске на выполнение


1-42765
kingdom
2002-01-30 14:40
2002.02.14
Нужен TShape нестандарной формы, как это сделать?


3-42653
aledo
2002-01-20 16:11
2002.02.14
Удаление нескольких записей


7-42877
yuger
2001-11-02 10:16
2002.02.14
Программное включение/выключение устройства из конфигурации