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

Вниз

Как определить БД зная только название поля   Найти похожие ветки 

 
Mr.Hunter   (2002-01-09 12:14) [0]

Господа мастера!! Кто нибудь может подсказать решение вот какого вопроса: у меня на форме лежит DBGrid и Query. Могу ли я как нибудь зная название поля узнать к какой БД оно относиться!! Мне нужно сделать что то вроде, кликнул на Title в Gride (как называется поле я естес-но могу определить), и выдать к какой БД оно относиться!! С TTable все понятно, там есть TableName и проблем никаких нет,а вот в Query, может быть выполнен запрос из разных таблиц!! Как быть?? Заранее благодарен!!


 
GrEG   (2002-01-09 12:30) [1]

После выполнения (успешного запроса) формируется временная таблица в которой и хранятся результаты запроса. Достать имя таблицы можно через BDE.
Вот моя функция.


function TableTypeToFileExt(TableType:string):string;
begin
Result:="";
TableType:=AnsiUpperCase(TableType);
if TableType = "DBASE" then
Result:="dbf"
else
if TableType = "PARADOX" then
Result:="db"
else
if TableType = "ASCIIDRV" then
Result:="txt"
end;


function NameFromCursor(hCur:hDbiCur; var TableName:string):integer;
var
cp:CurProps;
begin
Result:=dbiGetCursorProps(hCur,cp);
if Result = DBIERR_NONE then
TableName:=string(cp.szName)+"."+TableTypeToFileExt(cp.szTableType)
else TableName:=""
end;




 
Turalyon   (2002-01-09 12:31) [2]

Воспользуйся методом GetFieldNames он возвращяает список TStrings и по нему ищи. т.е. Берешь отдельный Query, делаешь выборку по 1 таблице и берешь список столбцов. Ну и дальше ищешь в нем свое поле.


 
GrEG   (2002-01-09 12:33) [3]

Да, вызывать функцию нужно следующим образом:
NameFromCursor(MyQuery.Handle,FileName);


 
Mr.Hunter   (2002-01-09 12:41) [4]

FileName?? Дак в запросе может быть выполнен выборкой из разных файлов!!


 
Mr.Hunter   (2002-01-09 13:36) [5]

GrEG, твоя функция работает, но к сожалению это не совсем то что нужно! Она выдает имя временной БД, которую создал SQL, а мне нужно имя той таблицы к которой непосредственно принадлежит поле с определенным названием!


 
Виктор Щербаков   (2002-01-09 13:41) [6]

А как же вычисляемые поля? Одно такое поле может иметь отношение к нескольким полям нескольких таблиц.


 
AlexR_R   (2002-01-09 22:02) [7]

А потом я что-то не понял, у тебя один запрос сразу к нескольким DB. Имя DB у Query в DataBaseName

Другое дело таблицы
В принципе у полей есть проперти Origin
Которое если добавлять поля в дизайн-time заполняется тем что тебе нужно. Честно не знаю, если там что-то если поля создаются в run-time. Но видимо искать надо где-то здесь


 
dymka   (2002-01-10 09:17) [8]

Origin работает только при создании компонентов типа TField...
Без создания там просто пустая строка... Как в рунтайме создать поле как это делается в десигн я не знаю... просто не пробывал...
но раз в десигне дельфа это делает и Origin работает, то можно покопать в этом направлении.



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

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

Наверх




Память: 0.46 MB
Время: 0.005 c
1-18794
Rustik
2002-01-24 15:04
2002.02.07
Программирование в Delphi


1-18861
Fellomena
2002-01-21 11:30
2002.02.07
Объясните в чём ошибка (надеюсь не в ДНК ;)


1-18859
NLO
2002-01-15 08:15
2002.02.07
где взять Image для просмотра TIFF и PCX


7-19010
@andrew
2001-10-30 10:25
2002.02.07
Привет Всем! Посоветуйте!


3-18716
dim
2002-01-10 10:16
2002.02.07
Declare variable N integer;





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