Списък на таблиците в базата данни

Здравейте, всички.
Моят въпрос е каква SQL изявление може да бъде получена spiok всички таблици в базата данни.
Благодаря предварително.

Вече няколко пъти на ден, въпросите се повтарят :-(

Тук погрешно това, което съм видял само един такъв въпрос, и това не е за MSSQL. В.

Аз използвам AdoQuery

Изберете името, идентификационния номер от sysobjects КЪДЕ статус> = 0 и тип = ПОРЪЧКА "U" по име - маси
Изберете името, идентификационния номер от sysobjects когато статут> = 0 и тип = "P" Подреди по име - съхранени процедури
Изберете името, идентификационния номер от sysobjects КЪДЕ статус> = 0 и тип = ПОРЪЧКА "FN" по име - потребителски дефинирана функция

Огромен ви благодаря с.

Съжалявам за устойчивост, но не мога да dotumkal.
Как да получите списък на маси SQL заявка, когато се използва база данни Microsoft Access?

Изберете името ОТ КЪДЕ MSysObjects Type = 1 и знамена = 0
достъп до MSysObjects ограничена нужда или маса вдясно или да използвате на потребителя, който има разрешение за откриване.

И как да го направя, ако не е тайна?

Добавен на потребителя admin1 аз му дадох паролата и всичко правилно
и за създаване на връзка Connection Test, за да заяви Faild
Какво да се прави?

Свързва се към Admin, а след това нека системните таблици, позволяват отваряне Admin-ти (в Access, например).

от друга страна (посочени) от страна на потребителя трябва да се използва базата данни на системата с потребители / grupammi разбере, ако е необходимо за сигурността, но само в името на списъка с таблици. скъпо.

GetTableNames мислил за? това, което не се вписва?


> Аз не мисля за GetTableNames? това, което не се вписва?

Факт е, че аз се свърже с приложенията на базата данни на сървъра.
И аз трябва да получите списък с таблици и клиентско приложение, което се свързва към сървър приложение.

тогава някой друг не разбира. може би съм.
т.е. можете да konekt MSSQL и да получите връзка трябва да бъде в списъка на таблици от базата данни на Access? chegoto или подобно? Ще обясня на пръстите на ръцете.

или все едно konekt към базата, от която се нуждае от списъка на таблици? togla GetTableNames костюм (би трябвало), независимо от прилагането на сървър / клиент. (Или поне ограничаващ фактор мога да се сетя)

Да започнем от самото начало. За MSSQL можете да забравите всичко, което имах, съм открил.

Имам клиентско приложение сървър.
Сървърът ADOConnection, RemoteDtaModule, и то DatasetProvider и ADODataset. Всичко това е свързано с една от друга.

На клиентът има DCOMConnection, SocketConnection, ClientDataSet и DataSource1. Всичко е между всички са свързани.

Пускам сървъра на една машина и да се свържете чрез Jet OLE DB доставчик за достъп на MS база данни. Сядам, а другият започва клиент и се свържете със сървъра по мрежата. Изпращането на всеки SQL заявка и аз трябва да го премина, тоест, всичко работи добре.
Но. има едно нещо, което не можете да получите списък на таблици или SQL заявка или по някакъв начин с другите.

Ufff. Вече без дъх.
Nadeyust Сега недоразумения няма да

Между другото, аз забравих да кажа, че програмата изходния код написан под АДО COM или SQL-сървър със собствените си ръце, но почти без промяна.

и trehzvenka,
метод може да се направи на сървъра и на клиента да го juzat
като този
процедура TRunUpdate.GetIncrem;
започвам
ValIncrem: = AppServer.GetUpdeteNum (RecPam.CashNum);
приключи;

AppServer е полезно нещо, а има и DCOMConnection SocketConnection;
как лидер трансфер (разделени със запетая там или друго) можете да се сетите (в този случай, че се предава от имената dogadatsya е възможно)

за искането,
да даде разрешение на масата - Ела в ltkroy база aksess-> Tools-> zaschita-> позволи по-нататъшна направи достатъчно, за да сложи отметка в полето масата в дясно.

или за потребителя
клон на регистъра
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Двигатели опция SystemDB
където база е Acces по подразбиране, да го намерите, а също и включете и (като името от регистъра е необходимо, тъй като името може да е различна)
параметър в низа за връзка
Jet OLEDB: System база данни = system.mdb
само от тези, които намират (също и в различни места могат да се крият)

> Елате в ltkroy
чета
Елате и открийте


> Достатъчно, за да сложите отметка в правилната масата в дясно.

Сложете отметката, но тя все още не работи. - ((
Аз дори не знам какво да правя. Може би аз съм напълно тъп, но аз нямам нищо.


> Процедура TRunUpdate.GetIncrem;
> започне
> ValIncrem: = AppServer.GetUpdeteNum (RecPam.CashNum);
> Край;

Можете да имате повече подробности и след това съставя oshibshku да даде GetUpdeteNum

> Сложете отметката, но тя все още не работи. - ((
> Аз дори не знам какво да правя. Може би аз съм напълно тъп, но аз нямам нищо.
за да започне проверката, без да trehzvenki Direct Connect.
можете просто Delphi или готов прог
Исканията за инспекции могат да изпращат програмата, която той ползва.

> Можете да имате повече подробности и след това съставя oshibshku да даде GetUpdeteNum
Естествено, че е моя метод, описва себе си и вашия сървър се нарича с клиента, а само това, което той ще премине по принцип няма значение, това е само един пример, достъп до сървъра чрез методи DCOMConnection.AppServer.

Сега този метод е описан в datamodule сървър

функция TWCMetods.GetUpdeteNum (CashNo: цяло число): цяло число;
Var StrFlag: низ;
започвам
резултат: = 0;
опитвам
ако (CashNo> 0) и (CashNo <51) then begin
StrFlag: = StringOfChar ( "_", CashNo-1) + "1%";
ADOLocDSet.Close;
ADOLocDSet.CommandText: =
"SELECT минути (INCREM) като INCREM ОТ КОИТО FlagOut CASH като" "" + StrFlag + "" "И знаме (1,2)";
ADOLocDSet.Open;
ако не и след това ADOLocDSet.IsEmpty
резултат: = ADOLocDSet.Fields [0] .AsInteger;
ADOLocDSet.Close;
приключи;
с изключение на
приключи;
приключи;


> Старт чек без trehzvenki Direct Connect

Проверих и е толкова странно нещо се оказва. Всички оферти без никакви проблеми. Реших да се сложи парола на администратор. Сложих.
Сега, когато отворите базата данни в Access изисква парола, и Delphi е възможно без парола. и паролата няма да ме пусне. Сега дори не знам как да го разбере.

>>>>
Тогава koechto друг nakodil но някак vylaziet грешка може да обясни?
DCOMConnection1.AppServer.AdoConnection1.GetTableNames (ListBox1.Items, фалшива);

> Тук koechto друг nakodil но някак vylaziet грешка може да обясни?
> DCOMConnection1.AppServer.AdoConnection1.GetTableNames (ListBox1.Items, фалшива);
; O) е малко вероятно да се работи, ListBox1.Items чиито компонент е? клиент. Не общото пространство, че сървърът за него и не знае на клиента и сървъра (около Comp).
и това, което е грешка обаче е? мен това не се е случило, и Изчакайте мързеливи, за да се направи тест.

Listbox1 компонент на клиента.
но грешката: "Не пишете позволено в Variant Disphatch повикване".

И мога да ви кажа моите източници по пощата дойде?


> За Jet OLEDB: System база данни = system.mdb

по принцип такъв файл не съществува. Въпреки, че е налице вписване в регистъра към него. Има system.mdw.
Опита да се свърже резултатът е един и същ "отказ на достъп до документи се чете (и) за MSysObjects обект".