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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.025 c
3-1217426639
kirillrepin
2008-07-30 18:03
2009.03.29
как в ДБГриде наименование в две строки?


4-1207281000
Тыщ
2008-04-04 07:50
2009.03.29
Функции в TlHelp32


2-1233734767
snake-as
2009-02-04 11:06
2009.03.29
Сделать активным окно программы


2-1233657635
Jimmy
2009-02-03 13:40
2009.03.29
Пиксели, пункты и см


15-1232743364
@!!ex
2009-01-23 23:42
2009.03.29
Удаленная работы бывает СТАБИЛЬНОЙ??