Форум: "Базы";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
ВнизGUID из БД Найти похожие ветки
← →
ujhtw (2006-09-21 11:12) [0]Доброго времени суток!
Есть БД на ORACLE. PK всех таблиц есть GUID. Для доступа используется ADO. Необходимо получить PK таблицы в программе.
var
s: string;
begin
...
s := DataSource.DataSet.FieldByName("field").AsString;
...
В s записывается какая-то чушь. Заранее спасибо за ответы.
← →
zdm © (2006-09-21 11:18) [1]обычно PK -это FIELDS[0]
← →
ujhtw (2006-09-21 11:21) [2]Это да, поле PK я найти могу :) Я не могу корректно получить содержимое этого поля.
← →
Ega23 © (2006-09-21 11:30) [3]
var
s:string;
With adsClasses do
begin
s:=TGUIDField(FieldByName("CLSGUID")).AsString;
....
end;
← →
zdm © (2006-09-21 11:30) [4]погоди, я торможу что-ли? тебе что нужно? получить значения этого поля?так оно ни одно, их много. Поэтому тебе нужен не string а типа массив
← →
Ega23 © (2006-09-21 11:31) [5]
> Поэтому тебе нужен не string а типа массив
Не гони.
← →
zdm © (2006-09-21 11:34) [6]
> Ega23 © (21.09.06 11:31) [5]
>
> > Поэтому тебе нужен не string а типа массив
>
>
> Не гони.
Если значений больше 255, то в string не поместится
← →
Ega23 © (2006-09-21 11:37) [7]
> Если значений больше 255, то в string не поместится
Не гони. LMD.
← →
zdm © (2006-09-21 11:38) [8]ega, я вопрос что-ли не понял?
← →
alex_*** © (2006-09-21 11:40) [9]действительно, не гони.
1 - используется guid длина которго фиксирована и много < 255
2 - длина string ограничивается далеко не 255 Байт
← →
ujhtw (2006-09-21 11:41) [10]
> var
> s:string;
>
> With adsClasses do
> begin
> s:=TGUIDField(FieldByName("CLSGUID")).AsString;
> ....
> end;
Я так уже пробовал. Не работает.
Все время в s приходит что-то, но не то, что нужно.
Может с настройками ADO не правильно. Или провайдер не тот?
← →
Ega23 © (2006-09-21 11:45) [11]
> ega, я вопрос что-ли не понял?
>
1. GUID - 16 байт.
2. Строковое его представление занимает 38 символов (если с фигурными скобочками)
3. Не путай String и ShortString
← →
alex_*** © (2006-09-21 11:46) [12]а что приходит-то? по идее AsString должно работать. Попробуй AdoCommand. Через OLEDB лезешь?
← →
ЮЮ © (2006-09-21 11:46) [13]TGUIDField(FieldByName("CLSGUID")).
А какого типа получается, есле в дизайнере поле добавить. если не TGUIDField, то бесполезно и неправильно его так насильно приводить.
← →
zdm © (2006-09-21 11:47) [14]да, извините, я просто не правильно понял вопрос и погнал не в ту сторону
← →
Ega23 © (2006-09-21 11:47) [15]
> Я так уже пробовал. Не работает.
> Все время в s приходит что-то, но не то, что нужно.
НЕ может быть. Я тебе из рабочего кода пример вырвал.
Правда я не с Oracle, а с MSSQL работаю. Но это не должно, по идее, никакой роли играть...
← →
ujhtw (2006-09-21 11:52) [16]
> А какого типа получается, есле в дизайнере поле добавить.
> если не TGUIDField, то бесполезно и неправильно его так
> насильно приводить.
Приходит VarByteField
> НЕ может быть. Я тебе из рабочего кода пример вырвал.
> Правда я не с Oracle, а с MSSQL работаю. Но это не должно,
> по идее, никакой роли играть...
Не работает. Похоже разница все таки есть.
> а что приходит-то? по идее AsString должно работать. Попробуй
> AdoCommand. Через OLEDB лезешь?
Что приходит: абракадабра какая-то. Да через OLE DB.
← →
zdm © (2006-09-21 11:54) [17]может действительно в самой or-е , провайдере, или её локализации трабла?
попробуй не ADO, а типа ODAC
← →
ujhtw (2006-09-21 11:55) [18]
> попробуй не ADO, а типа ODAC
Так он вроде платный
← →
zdm © (2006-09-21 11:56) [19]а у тебя windows лецинзионный стоит? а он тоже платный :)
← →
alex_*** © (2006-09-21 11:57) [20]есть мнение что дело не в АДО и вот так просто перепрыгивать с одного провайдера на другой на середине проекта из-за такой мелочи не есть правильно
← →
roottim © (2006-09-21 12:03) [21]pk - это varchar2?
← →
ЮЮ © (2006-09-21 12:04) [22]
> Приходит VarByteField
И какой у него DataSize?
← →
ujhtw (2006-09-21 12:16) [23]Спасибо всем! проблема разрешилась... средствами Oracle. При запросе к полю PK прменялась функция rawtohex(PK) b все ок.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.11.19;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.048 c