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

Вниз

Странно передается параметр в запрос   Найти похожие ветки 

 
pavel_guzhanov ©   (2009-02-03 10:27) [0]

Имеются вот такие запросы:
 IBQ.SQL.Add("select selfnumber from naturals");
 ADOQSn.SQL.Add("select id, selfnumber from "FORM"."PERSON" where selfnumber=:s");
IBQ - это FireBird, ADOQSn - DB2.

В качестве параметра в ADOQSn передаю значение из IBQ
     ADOQSn.Parameters[0].Value:=IBQ.FieldByName("selfnumber").AsString;
Вроде бы все должно работать нормально. Но в отладчике вижу, что при IBQ.FieldByName("selfnumber").AsString  равным например 10НПО2345 в параметре у ADOQSn вместо русских букв получаются кракозябры. Понятно, что где-то не выбрана кодировка. У FireBird lc_ctype=WIN1251. Наверное неправильная кодировка у ADO. В настройках ADOConnection не нашел выбора кодировки. Подскажите, где это найти или как еще можно нормально передавать параметр


 
Johnmen ©   (2009-02-03 10:52) [1]

Каким образом видны кракозябры в значении параметра?


 
pavel_guzhanov ©   (2009-02-03 10:59) [2]


> Каким образом видны кракозябры в значении параметра?


добавил ADOQSn.Parameters[0].Value в Watch List. После строки присвоения значения параметру стоит BreakPoint. В Watch List показывается значение с кракозябрами. Значение IBQ.FieldByName("selfnumber").AsString показывается корректно


 
Медвежонок Пятачок ©   (2009-02-03 11:05) [3]

А если

ADOQSn.Parameters[0].Value:= "мама мыла раму";


 
pavel_guzhanov ©   (2009-02-03 11:08) [4]


> А если
>
> ADOQSn.Parameters[0].Value:= "мама мыла раму";


ADOQSn.Parameters[0].Value: "<0<0 <K;0 @0<C"


 
Ega23 ©   (2009-02-03 11:10) [5]


> "<0<0 <K;0 @0<C"


Любопытно...


 
Johnmen ©   (2009-02-03 11:11) [6]

Какой DataType?


 
Медвежонок Пятачок ©   (2009-02-03 11:11) [7]

значит адо ему выставило какой-то етакий тип


 
pavel_guzhanov ©   (2009-02-03 11:13) [8]


> Какой DataType?

и в FireBird и в DB2 - VARCHAR(50)


 
Johnmen ©   (2009-02-03 11:14) [9]

Какой DataType у параметра?


 
pavel_guzhanov ©   (2009-02-03 11:20) [10]


> Какой DataType у параметра?


пробовал поставить ftString и ftWideString. Результат одинаковый.


 
Johnmen ©   (2009-02-03 11:25) [11]

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


 
pavel_guzhanov ©   (2009-02-03 11:32) [12]

использую Provider=IBMDADB2.1. Интересно, где бы у него это посмотреть :о)


 
Anatoly Podgoretsky ©   (2009-02-03 12:00) [13]


> pavel_guzhanov ©   (03.02.09 11:20) [10]
>
> > Какой DataType у параметра?
>
>
> пробовал поставить ftString и ftWideString. Результат одинаковый.
>

Услышим ли мы ответ?


 
Ega23 ©   (2009-02-03 12:10) [14]

До подключения
ADOQSn.ParamCheck := False;
?


 
pavel_guzhanov ©   (2009-02-03 13:14) [15]


> До подключения
> ADOQSn.ParamCheck := False;
> ?

в свойствах стояло true. изменил на false, стала выскакивать ошибка на ADOQSn.Open;


 
pavel_guzhanov ©   (2009-02-03 13:18) [16]


> Услышим ли мы ответ?

Дядя Толя, ты ведь наверняка знаешь, в чем тут проблема. Мож подскажешь? :о)


 
Anatoly Podgoretsky ©   (2009-02-03 13:38) [17]

Вокруг одни партизаны.


 
Anatoly Podgoretsky ©   (2009-02-03 13:39) [18]


> стала выскакивать ошибка на ADOQSn.Open;

Скажи чтобы не ругал(а)ся.


 
Ega23 ©   (2009-02-03 13:57) [19]


> в свойствах стояло true. изменил на false, стала выскакивать
> ошибка на ADOQSn.Open;


О!

А теперь сделай так (начальная инициализация ADOQSn, до коннекта):


ADOQSn.ParamCheck := False;
ADOQSn.SQL.Text := "select id, selfnumber from "FORM"."PERSON" where selfnumber=?";
ADOQSn.Parameters.Clear;
with ADOQSn.Parameters.AddParameter do
begin
 Name := "selfnumber";
   DataType := ftString;
   Direction := pdInput;
end;
ADOQSn.Connection := ....


И попробуй, что будет.


 
pavel_guzhanov ©   (2009-02-03 15:37) [20]


> И попробуй, что будет.

Все так же, без изменений


 
alexclerk   (2009-02-04 18:56) [21]

Ситуация один-в-один. даже кракозяблы похожи. Скажите как с этим бороться?



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

Форум: "Начинающим";
Текущий архив: 2009.03.29;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.045 c
9-1177600266
$00FF00
2007-04-26 19:11
2009.03.29
Проблемы с трением


15-1232283018
saNat
2009-01-18 15:50
2009.03.29
Нет доступа к сетевым папкам


15-1232646798
Kerk
2009-01-22 20:53
2009.03.29
mod_negotiation


2-1233437886
Vemer
2009-02-01 00:38
2009.03.29
Как присоединить данные к DIB?


2-1234191366
AlexDan
2009-02-09 17:56
2009.03.29
Изменить положение MessageDlg,





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