Форум: "Базы";
Текущий архив: 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.043 c