Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
11-25726
SPeller
2003-06-20 14:57
2004.03.09
Значок у темы ветки


14-25936
Soft
2004-02-15 00:19
2004.03.09
Голубая кровь!!!


9-25675
Sacred
2003-08-20 02:34
2004.03.09
Direction и Position у GLCamera???


14-25882
Tarantul
2004-02-16 19:27
2004.03.09
Drag&Drop


14-25928
Домарощинер
2004-02-14 15:17
2004.03.09
Непонятные куки





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