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

Вниз

Delphi6 DB2   Найти похожие ветки 

 
Anisa   (2004-07-01 09:26) [0]

Просветите, кто знает. SQLQuery примерно такого типа
UPDATE AAA SET
P1=:par1
WHERE p2=:par2 and p3=:par3. Так вот, когда в условиях числовые параметры, то работает, а со строками не отрабатывается.


 
Наталия ©   (2004-07-01 09:27) [1]

Какую ошибку выдает?
Поля имеют какой тип?


 
Anisa   (2004-07-01 09:40) [2]

Одно поле в WHERE имеет float, второе string.
если оставить только float, то запрос отрабатывается.
как только в условие добавляю string, то SQLQuery.ExecSQL возвращает 0.
string по длине одинаковые, верхний регистр. что еще надо?


 
Курдль ©   (2004-07-01 09:42) [3]

like


 
Johnmen ©   (2004-07-01 09:43) [4]

>что еще надо?

Привести конкретный кусок кода с необходимыми пояснениями...


 
Anisa   (2004-07-01 09:53) [5]

Like тоже не работает. Текст SQL следующий:

update Pensioner set
Policser=:ps, Policnum=:pn,
Address=:a, Addresbirth=:ab
where Pensioner.Insnumber=:Insnumber and Pensioner.Family=:Family
//здесь Insnumber - float, Family-string
// в таблице PENS типы столбцов соответствуют параметрам запроса
Кусок кода:
  while not PENS.Eof do
   begin
    SQLQuery7.Close;
    SQLQuery7.ParamByName("ps").Asstring:=PENS.fields[1].value;
    SQLQuery7.ParamByName("pn").Asstring:=PENS.fields[2].value;
    SQLQuery7.ParamByName("Insnumber").Asfloat:=PENS.fields[0].value;
    SQLQuery7.ParamByName("Family").value:=AnsiUpperCase(PENS.fields[3].value);
    if not varisnull(PENS.fields[8].value) then SQLQuery7.ParamByName("a").Asstring:=PENS.fields[8].value
     else SQLQuery7.ParamByName("a").Asstring := "";
    if not varisnull(PENS.fields[13].value) then SQLQuery7.ParamByName("ab").Asstring:=PENS.fields[13].value
     else SQLQuery7.ParamByName("ab").Asstring := "";
    i := SQLQuery7.ExecSQL();
    cc := SQLQuery7.RowsAffected;
В результате i=cc=0


 
Курдль ©   (2004-07-01 09:58) [6]

А если уточнить:
SQLQuery7.ParamByName("Family").value
SQLQuery7.ParamByName("Family").AsString


 
Johnmen ©   (2004-07-01 09:58) [7]

Похоже дело в SQLQuery7.ParamByName("Insnumber").Asfloat
Почему номер по сути определяется, как с плавающей точкой по содержимому ???


 
Курдль ©   (2004-07-01 10:02) [8]

Мне кажется, что вариантные модификаторы ".value" использовать следует, только когда нет другого выхода.
Кстати, и конструкцию varisnull(PENS.fields[8].value) можно заменить на PENS.fields[8].IsNull а еще лучше - на PENS.FieldByName("field_name").IsNull


 
Anisa   (2004-07-01 10:03) [9]

По поводу: value и asstring - уже пробовали, ему все равно не помагает.
С asfloat работает, и если asinteger, тоже все хорошо
при добавлении string проблема-то.
Эту же программулю делали на С# в VS.NET, там передача параметров идет как CHAR() и все в порядке, в Delphi уже измучились


 
Курдль ©   (2004-07-01 10:08) [10]

А если попробовать завершать строку #0?


 
Johnmen ©   (2004-07-01 10:10) [11]

Пиши
SQLQuery7.ParamByName("Family").AsString:=AnsiUpperCase(PENS.fields[3].AsString);
Смотри, как выглядит реальный запрос.
Фамилии в табл. не в верхнем регистре.
...UPPER(Pensioner.Family)=:Family


 
Anisa   (2004-07-01 10:29) [12]

ОГРОМНОЕ ВСЕМ СПАСИБО ЗА ПОМОЩЬ
действительно, ...UPPER(Pensioner.Family)=:Family



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

Форум: "Базы";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.038 c
6-1085498736
diMAN
2004-05-25 19:25
2004.07.25
Выявление "коллизий" в сети


4-1087072961
DukeArtem
2004-06-13 00:42
2004.07.25
Люди добрый, помогите с клавой :(


14-1088926731
Dan
2004-07-04 11:38
2004.07.25
Как заставить Delphi инсталлиться только для одного юзера


14-1088751063
IceBeerg
2004-07-02 10:51
2004.07.25
Про злобный Windows :(


11-1077751353
nester
2004-02-26 02:22
2004.07.25
Как обрабатывать сообщения в КОЛ проге, если она без формы.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский