Форум: "Базы";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];
ВнизСписок таблиц базы данных.... Найти похожие ветки
← →
RustiK (2004-02-10 13:58) [0]Привет, всем!!!
У меня вопрос какой SQL командой можно получить спиок всех таблиц в базе данных...
Заранее спасибо!!!
← →
Плохиш (2004-02-10 14:13) [1]Чё опять 8-O
Уже по нескольку раз на день вопросы повторяются :-(
← →
RustiK (2004-02-10 14:14) [2]Вот втом то и дело что я видел только один такой вопрос и то не для MSSQL. Во!!!
← →
Плохиш (2004-02-10 14:21) [3]>RustiK © (10.02.04 14:14) [2]
?
> Вот втом то и дело что я видел только один такой вопрос
А ответ про GetTableNames там видел
> и то не для MSSQL
А думать ешё не научился?
← →
ZrenBy (2004-02-10 14:23) [4]http://delphimaster.net/view/3-1075469139/
← →
RustiK (2004-02-10 14:33) [5]Я использую AdoQuery
← →
Artem03 (2004-02-10 14:58) [6]SELECT name,id FROM sysobjects WHERE status>=0 AND type="U" ORDER BY name - tables
SELECT name,id FROM sysobjects WHERE status>=0 AND type="P" ORDER BY name - Stored Procedures
SELECT name,id FROM sysobjects WHERE status>=0 AND type="FN" ORDER BY name - User Defined Function
← →
RustiK (2004-02-10 15:10) [7]Огромное при огромное спасибо!!!
← →
RustiK (2004-02-11 07:59) [8]Огромное спасибо
← →
RustiK (2004-02-11 08:02) [9]Я извиняюсь за настойчивость но не как дотумкаться не могу...
Как получить список таблиц sql запросом если используется база Microsoft Access?
← →
sniknik (2004-02-11 08:26) [10]GetTableNames универсально, подумай еще что лутше.
SELECT Name FROM MSysObjects WHERE Type=1 AND Flags=0
доступ к MSysObjects ограничен, нужно или таблице права дать или юзера использовать у кого разрешения есть на открытие.
← →
RustiK (2004-02-11 09:22) [11]А как это сделать если не секрет?
← →
RustiK (2004-02-11 09:26) [12]Добавил Я юзера Admin1 дал ему пароль и абсолютно все права
а при создании Connection на Test connection говорит, что Faild
Что делать?
← →
sniknik (2004-02-11 10:46) [13]подключайся на Admin, и тогда системным таблицам дай разрешение открытия Admin-ом (в аксессе к примеру).
с другим(заданным) юзером нужно использовать системную базу с юзерами/групамми, понимаю если бы безопаснось требовала, а только ради получения списка таблиц... накладно.
про GetTableNames не думал? чем не подходит?
← →
Плохиш (2004-02-11 10:51) [14]>sniknik © (11.02.04 10:46) [13]
> про GetTableNames не думал? чем не подходит?
Это не их метод ;-)
← →
RustiK (2004-02-11 12:02) [15]
> про GetTableNames не думал? чем не подходит?
дЕЛО в том что я подключаю базу на сервер приложении.
А получить мне надо список таблиц и клиентского приложения которое подключается к сервер приложению.
← →
sniknik (2004-02-11 12:29) [16]тут ктото когото не понимает. возможно я.
т.е. у тебя конект к MSSQL а получить надо в этом коннекте список таблиц из аксесс базы? или чегото подобное? обьясни на пальцах.
или всетаки конект к той базе из которой список таблиц нужен? тогла GetTableNames подойдет(должен) независимо от серверного/клиентского приложения. (во всяком случае я ограничивающего фактора придумать не могу)
← →
RustiK (2004-02-11 12:55) [17]Начнем с начала. Про MSSQL можешь забыть все что мне нужно было я уже выяснил.
У меня клиент серверное приложение.
На сервер есть ADOConnection, RemoteDtaModule, а в нем DatasetProvider и ADODataset. Все это между собой связывается.
На клиенте есть DCOMConnection, SocketConnection, ClientDataSet и DataSource1. Это все также между собой все связывается.
Я запускаю сервер на одной машине и подключаю через Jet OLE DB Provider базу MS ACCESS. Сажусь за другую и по сети зпускаю клиент и подсоединяюсь к серверу. Посылаю любой SQL запрос и он у меня проходит, то есть работает все нормально.
Но, есть одно но никак не могу получить список таблиц ни SQL запросом ни каким-либо други способ.
Уффф. Аж запыхался...
Надеюсть теперь недопониманий не будет
← →
RustiK (2004-02-11 12:59) [18]Кстати забыл сказать что исходники программы написаны по статье ADO & COM или SQL-сервер своими руками, но немного изменены.
← →
sniknik (2004-02-11 13:15) [19]а трехзвенка,
можно метод сделать на сервере а с клиента его юзать
вроде этого
procedure TRunUpdate.GetIncrem;
begin
ValIncrem:= AppServer.GetUpdeteNum(RecPam.CashNum);
end;
AppServer это такая полезная штука, есть и в DCOMConnection и в SocketConnection;
как лутше передавать (разделенное запятыми там или по другому) можно придумать (в этом случае что передается из названий догадатся можно)
насчет запроса,
дать разрешения на таблицы - зайди в лткрой базу аксесс->сервис->защита->разрешения дальше разберешся, достаточно галочки поставить на нужное у нужной таблицы.
или для юзера
в реестре ветка
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines параметр SystemDB
там база используемая по умолчанию аксесом, найди ее и тоже подключай (брать имя из реестра нужно т.к. название может быть разным)
параметр в строке подключения
Jet OLEDB:System database=system.mdb
только с путем тем который найдеш (тоже в разных местах может лежать)
вроде все.
← →
sniknik (2004-02-11 13:18) [20]> зайди в лткрой
читать
зайди и открой
← →
RustiK (2004-02-11 13:52) [21]
> достаточно галочки поставить на нужное у нужной таблицы.
Поставить то поставил галочки, но все равно не работает... :-((
Уж даже не знаю что делать. Может я совсем тупой, но у меня ничего не получается...
> procedure TRunUpdate.GetIncrem;
> begin
> ValIncrem:= AppServer.GetUpdeteNum(RecPam.CashNum);
> end;
Можно по подробней а то у меня компилир ошибшку на GetUpdeteNum дает
← →
sniknik (2004-02-11 14:01) [22]> Поставить то поставил галочки, но все равно не работает... :-((
> Уж даже не знаю что делать. Может я совсем тупой, но у меня ничего не получается...
для начала проверить без трехзвенки прямым коннектом.
можно просто в дельфях или готовой прогой
для проверок запросов могу выслать программу которой сам пользуюсь.
> Можно по подробней а то у меня компилир ошибшку на GetUpdeteNum дает
естественно это мой метод, опиши себе свой на сервере и вызывай с клиента, а уж что он там передавать будет в принципе неважно, это просто пример, доступ к методам сервера через DCOMConnection.AppServer.
← →
sniknik (2004-02-11 14:07) [23]вот этот метод описанный в датамодуле на сервере
function TWCMetods.GetUpdeteNum(CashNo: Integer): Integer;
var StrFlag: string;
begin
result:= 0;
try
if (CashNo > 0) and (CashNo < 51) then begin
StrFlag:= StringOfChar("_", CashNo-1)+"1%";
ADOLocDSet.Close;
ADOLocDSet.CommandText:=
"SELECT Min(INCREM) AS INCREM FROM FlagOut WHERE CASH LIKE """+StrFlag+""" AND Flag IN (1,2)";
ADOLocDSet.Open;
if not ADOLocDSet.IsEmpty then
result:= ADOLocDSet.Fields[0].AsInteger;
ADOLocDSet.Close;
end;
except
end;
end;
← →
RustiK (2004-02-11 14:18) [24]
> начала проверить без трехзвенки прямым коннектом
Проверил и вот такая странность получается. Все открывает без проблем. Решил на Admin пароль поставить. Поставил.
Теперь при открытии базы в аксессе требует пароль, а Дельфи можно без пароля , а с паролем не пускает... Теперь даже не знаю как это понимать.
>>>>
тут я коечто другое накодил но почему-то ошибка вылазиет может объясните?
DCOMConnection1.AppServer.AdoConnection1.GetTableNames(ListBox1.Items, false);
← →
sniknik (2004-02-11 14:39) [25]> Решил на Admin пароль поставить. Поставил. Теперь при открытии базы в аксессе требует пароль
раз отлично от по умолчанию то см. > sniknik © (11.02.04 13:15) [19]
про Jet OLEDB:System database=system.mdb
> тут я коечто другое накодил но почему-то ошибка вылазиет может объясните?
> DCOMConnection1.AppServer.AdoConnection1.GetTableNames(ListBox1.Items, false);
;о) вряд ли работать будет, ListBox1.Items это чей компонент? клиента. а у клиента и сервера не общее пространство, сервер про него и не знает (про компонет).
а какую ошибку хоть выдает? мне такое в голову не приходило, да и счас лень тест делать.
← →
RustiK (2004-02-11 14:45) [26]Listbox1 компонент на клиенте.
а вот ошибка: "Type not allowed in Variant Disphatch call".
А может я вам свои исходники по почте пришлю?
← →
RustiK (2004-02-11 14:48) [27]
> про Jet OLEDB:System database=system.mdb
вообще такого файла не существует. Хотя есть запись в реестре именно на него. Есть system.mdw...
Пробовал подключать результат тот же "Отказ в доступе на чтение записи(ей) для объекта MSysObjects".
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.009 c