Здравствуйте, VitaliyDoroshko, Вы писали:
VD>Подскажите как определить владельца таблицы?
А нельзя просто заменить владельцев всех объектов на dbo и не мучаться? На собственном опыте могу сказать: если нет острой необходимости — надо везде ставить dbo ибо нефиг.
С другой стороны, QA от MSSQL показывает владельцев, значит возможность их получения на клиенте есть.
Один из способов на клиенте для MSSQL — sp_help, которая возвращает 4 рекордсета, в первом из которых описывается владелец объекта.
... <<Звери — Молнии>>
Не восхрапи на работе, ибо храпом своим разбудишь начальника своего.
В состав CBuilder и (Delphi) входит программа SQL-explorer. Как только она запускается, она показывает список ODBC — источников. Далее, когда я открываю некоторыый источник (базу данных), программа показывает мне список таблиц, которые содержит база данных.
Нужно сделать тоже самое.
Следующий код возвращает список таблиц базы:
TStrings *SL = new TStringList;
ADOConnection1->GetTableNames(SL, false);
ShowMessage(SL->Text);
Выдаеся список вида:
#temp
accounts
Akt
AmortList
AmortList
...
Однако, кроме имени таблица еще имет и владельца.
Мне приходится работать с базой Sybase. Там при обращении к таблице владельца указывать обязательно:
Select * From dba.Akt
Здравствуйте, _spin_, Вы писали:
__>Здравствуйте, VitaliyDoroshko, Вы писали:
VD>>Подскажите как определить владельца таблицы?
__>А нельзя просто заменить владельцев всех объектов на dbo и не мучаться? На собственном опыте могу сказать: если нет острой необходимости — надо везде ставить dbo ибо нефиг.
__>С другой стороны, QA от MSSQL показывает владельцев, значит возможность их получения на клиенте есть.
__>Один из способов на клиенте для MSSQL — sp_help, которая возвращает 4 рекордсета, в первом из которых описывается владелец объекта.
В sp_help имя таблицы с овнером передавать надо. Если owner <> 'dbo' она проругается.
select USER_NAME( uid ) from sysobjects where name = 'имятаблички'
Здравствуйте, Hemul, Вы писали:
H>В sp_help имя таблицы с овнером передавать надо. Если owner <> 'dbo' она проругается. H>select USER_NAME( uid ) from sysobjects where name = 'имятаблички' H>и будет вам счастье
У меня оба метода работают под MSSQL. И Ваш и мой:
sp_help 'sysobjects'
или
sp_help sysobjects
Может, под sybase что-то не так?
... <<Apocalyptica — Enter Sandman>>
Не восхрапи на работе, ибо храпом своим разбудишь начальника своего.
Здравствуйте, VitaliyDoroshko, Вы писали: VD>... VD>Подскажите как определить владельца таблицы?
Если бы я работал только с MS SQL ...
Проблема заключается и в том, что приходится работать с разными бозами данных в том числе MS SQL, Sybase, Dbf, Access и др.
Более того я не использцю BDE. Пользуюсь только ADO.
Может кто подскажет какие-либо способы определить владельца таблицы с помощью ADO.
Здравствуйте, VitaliyDoroshko, Вы писали:
VD>Здравствуйте, VitaliyDoroshko, Вы писали: VD>>... VD>>Подскажите как определить владельца таблицы?
VD>Если бы я работал только с MS SQL ... VD>Проблема заключается и в том, что приходится работать с разными бозами данных в том числе MS SQL, Sybase, Dbf, Access и др.
Универсальнго способа нет. А откуда в DBF и Access владельцы?
VD>Более того я не использцю BDE. Пользуюсь только ADO.
VD>Может кто подскажет какие-либо способы определить владельца таблицы с помощью ADO.
Вот запрос, который возвращает тоблицы с владельцами для MSSQL (для Sybase вроде также)
select user_name( uid )+'.'+ name
from sysobjects
where xtype = 'U'