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

Вниз

Передача параметров   Найти похожие ветки 

 
apl   (2007-03-02 09:01) [0]

Подскажите, в чем фокус.
Работаю с MSSQL Получаю через ADOQuery некоторую выборку.
Дополнительно есть таблица DBF. К нейт так же выполняю запросы через ADOQuery. Нужно поискать для каждой записи из полученного запроса в DBF таблице соответствие.

Делаю следующее для каждой записи
(запрос к DBF)
Select * fron dbftable where fam=:AFirstName and im=:AName

передаю параметры

ADOQuerydbf.Parameters[0].Value:=AdoQueryMSfam.AsString
....


И здесь возникает фигня!
AdoQueryMSfam.AsString возвращает нормальное (читаемое) значение (Например ИВАНОВ), а в ADOQuerydbf.Parameters[0].Value получаем строку в виде шестнадцатиричных символов.
Параметр запроса имеет тип Strung (в инспекторе), а Тип значения OleStr.


 
Ega23 ©   (2007-03-02 09:08) [1]


ADOQuerydbf.Parameters[0].Value:=AdoQueryMS.FieldByName("fam").AsString;

Так что-то меняется?


 
ЮЮ ©   (2007-03-02 09:41) [2]

Ega23 ©   (02.03.07 09:08) [1]
Так что-то меняется?

А разве должно? Для персистент поля FieldByName("fam") === AdoQueryMSfam
Какото типа AdoQueryMSfam ?


 
Ega23 ©   (2007-03-02 09:43) [3]


> Какото типа AdoQueryMSfam ?


Вот и мне интересно, какого типа.


 
apl   (2007-03-02 10:57) [4]

AdoQueryMsfam - строковый Извиняюсь, в offline


 
Плохиш ©   (2007-03-02 11:03) [5]


> ADOQuerydbf.Parameters[0].Value:=AdoQueryMSfam.Value;


 
ЮЮ ©   (2007-03-02 11:10) [6]

AdoQueryMsfam - строковый
не верю, это должен быть наследник TField !!!


 
apl   (2007-03-02 11:31) [7]

AdoQueryMs - это Name для AdoQuery (без всяких фокусов)
AdoQueryMsfam  = AdoQuery.FieldByName("fam")
а fam - строковый


 
Ega23 ©   (2007-03-02 12:30) [8]


> Плохиш ©   (02.03.07 11:03) [5]


Скорее всего - да.


 
ЮЮ ©   (2007-03-02 12:55) [9]

AdoQueryMs - это Name для AdoQuery (без всяких фокусов)

Безо всяких фокусов, в коде формы (в обявлении клвсса формы) есть такая строка:
AdoQueryMs: TxxxField;

Так вот этот ххх и интересует. Понятие "строка" слишком общее для MS SQL. Тпм несколько строковах типов. Я, напрмер, предпочитаю varchar(255), а какой у твоего поля fam?


 
Ega23 ©   (2007-03-02 13:03) [10]


> Я, напрмер, предпочитаю varchar(255)


Кстати, как оффтопик:
А ты всегда строковым полям 255 даёшь? Т.е. логически не разбиваешь никогда?

З.Ы. Разницу между char(255) и varchar(255) прекрасно представляю...


 
ЮЮ ©   (2007-03-02 13:10) [11]

Если нет строго заданной длины исходя из предметной области, то если
поле предназначено заведомо для аббревиатур, то могу ограничиться и 50, в остальных случаях предпочитаю не заморачиваться на мелочах. В первом - 10летней давности проекте - чего только нет и (20) и (25) и т.д. А теперь, когда мало окажется - и не знаешь что делать :)


 
Ega23 ©   (2007-03-02 13:35) [12]


> Если нет строго заданной длины исходя из предметной области,
>  то если
> поле предназначено заведомо для аббревиатур, то могу ограничиться
> и 50, в остальных случаях предпочитаю не заморачиваться
> на мелочах. В первом - 10летней давности проекте - чего
> только нет и (20) и (25) и т.д. А теперь, когда мало окажется
> - и не знаешь что делать :)


Ясно. В общем, я тоже уже к этому пришёл. Пару раз пришлось кучу кода лопатить, т.к. попался чувак с какой-то совершенно жуткой составной фамилией, типа "Пескоструев-Загибаченский" (только там ещё суровее было), и не влезло оно в varchar(32)...
С тех пор тоже на "всегда 255" перешёл... :)


 
apl   (2007-03-02 14:21) [13]

AdoQueryMs: TxxxField; - к сожалению сейчас сказать не смогу, т.к. это на другой работе, а там нет выхода во внешний мир.
По поводу длины строк - то же

ADOQuerydbf.Parameters[0].Value:=AdoQueryMSfam.Value; - не помогло. В обед съездил, проверил.


 
Плохиш ©   (2007-03-02 15:20) [14]


> apl   (02.03.07 14:21) [13]
> AdoQueryMs: TxxxField; - к сожалению сейчас сказать не смогу,
>  т.к. это на другой работе, а там нет выхода во внешний
> мир.
> По поводу длины строк - то же
>
> ADOQuerydbf.Parameters[0].Value:=AdoQueryMSfam.Value; -
> не помогло. В обед съездил, проверил.

Хм, все остальные консультации для Вас по цене 100 Евро за пост, предоплата за 10 постов.


 
apl   (2007-03-02 15:26) [15]

Беседа двух авторитетов просто доставляет удовольствие, бесплатно и в ассортименте :)))))


 
Bless ©   (2007-03-03 11:36) [16]


> ЮЮ ©
> Ega23 ©


А почему именно 255?


 
Val ©   (2007-03-03 11:36) [17]

число красивое.


 
ЮЮ ©   (2007-03-03 11:54) [18]


> А почему именно 255?


Как дань уважения паскалевкой string :)


 
Param   (2007-03-04 01:33) [19]

Может попробовать через ПарамБуНаме?

ADOQuerydbf.Parameters.ParamByName("").Value


 
MsGuns ©   (2007-03-04 01:38) [20]

Как типы полей прописаны собственно в таблицах ?
string - ог только в паскале стринг (кстати, может быть также ftWideString, - там вообще с типами данных такого намутили, что ужасть), в dbf он Character, в "скале" может быть Char, VarChar..



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

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

Наверх





Память: 0.49 MB
Время: 0.061 c
2-1178260166
allucard
2007-05-04 10:29
2007.05.20
Как при печати разбить форму на две страницы.


3-1172862873
ПоШЛяК
2007-03-02 22:14
2007.05.20
Копирование записей


1-1174570621
serg_new
2007-03-22 16:37
2007.05.20
Скачать карты из GoogleMap


2-1178337129
Gromozeka
2007-05-05 07:52
2007.05.20
Проверка строки на соответствие формату даты


1-1174400113
San ciz
2007-03-20 17:15
2007.05.20
Рамка формы в нестандартных местах)





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