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

Вниз

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

Наверх




Память: 0.51 MB
Время: 0.044 c
6-1150871336
Zilog
2006-06-21 10:28
2006.11.19
как определить активность порта?


3-1158564139
Bless
2006-09-18 11:22
2006.11.19
OnSetText Глюк или реальность?


2-1162197366
Piero
2006-10-30 11:36
2006.11.19
TDBLookUpComboBox


15-1162351507
Slider007
2006-11-01 06:25
2006.11.19
С днем рождения ! 1 ноября


2-1162360977
apic
2006-11-01 09:02
2006.11.19
низкоуровневый хук