Главная страница
    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
1-1089310224
limon_
2004-07-08 22:10
2004.07.25
JPEG и масштаб


6-1085374314
aper
2004-05-24 08:51
2004.07.25
как проверить доступна ли сетевая папка.


3-1088756176
maximus_
2004-07-02 12:16
2004.07.25
И снова транзакции!


3-1088420514
Igoryok
2004-06-28 15:01
2004.07.25
Как узнать список удалённых SQL-серверов,servername/instance


14-1089055759
_none_
2004-07-05 23:29
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский