Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.006 c
14-42832
Polevi
2001-12-24 15:45
2002.02.14
LOL


1-42716
чайничек
2002-01-28 18:55
2002.02.14
Как писать в Edit однjq из закладок Tabs (TTabControl), и сохранив там запись писать в другой - другое


3-42640
Desdechado
2002-01-16 16:08
2002.02.14
Как отключить Forced Writes


1-42775
M@XIDROM
2002-01-21 01:53
2002.02.14
Файл, состоящий из картинок!


1-42763
DEPROL
2002-01-31 09:38
2002.02.14
Install Delphi5 for Win2k





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский