Lista tabelelor din baza de date
Bună ziua, toată lumea.
Întrebarea mea este ce fel de instrucțiuni SQL pot fi obținute spiok toate tabelele din baza de date.
Multumesc anticipat.
Deja de mai multe ori pe zi, întrebări sunt repetate :-(
Aici interpretat greșit lucru pe care l-am văzut doar o astfel de problemă, și nu este pentru MSSQL. În.
Eu folosesc AdoQuery
SELECT nume, ID-ul din sysobjects WHERE starea> = 0 si type = "U" ORDER BY nume - tabele
SELECT nume, ID-ul din sysobjects UNDE de stare> = 0 și tipul = "P" ORDER BY nume - proceduri stocate
SELECT nume, ID-ul din sysobjects WHERE starea> = 0 și tipul = "FN" ORDER BY nume - Definit de utilizator Funcție
Un imens vă mulțumesc cu.
Îmi pare rău pentru persistenta, dar nu pot par să dotumkal.
Cum se obține o listă de interogare tabele SQL atunci când se utilizează baza de date cu Microsoft Access?
SELECT Nume FROM WHERE MSysObjects Type = 1 = 0 și steaguri
accesul la MSysObjects nevoie sau de masă limitate la dreapta sau de a folosi utilizatorul care are permisiunea de deschidere.
Și cum să o facă dacă nu un secret?
Adăugat Admin1 utilizator i-am dat parola și tot dreapta
și pentru crearea de conectare Test conexiune la numitul faild
Ce să fac?
Se conectează la Admin, și apoi lăsați tabelele de sistem permit deschiderea Admin-lea (în Access, de exemplu).
de altă parte (specificate) de către utilizator trebuie să utilizeze baza de date de sistem cu utilizatorii / grupammi înțelege dacă este necesar securitatea, dar numai de dragul listei de tabele. scumpe.
GetTableNames gândit? ceea ce nu se potrivește?
> Nu m-am gândit despre GetTableNames? ceea ce nu se potrivește?
Faptul este că am conecta la aplicația de server de baze de date.
Și am nevoie pentru a obține o listă de tabele și o aplicație client care se conectează la un server de aplicație.
atunci cineva altcineva nu înțelege. poate eu sunt.
și anume te Konekt la MSSQL și de a obține o conexiune trebuie să fie în lista de tabele din baza de date Access? chegoto sau similare? va explica pe degete.
sau toate aceeași Konekt la baza de la care este necesar lista de tabele? togla GetTableNames costum (ar trebui), indiferent de aplicația client / server. (Sau cel puțin limitarea factor I pot gândi)
Să începem de la început. Despre MSSQL poți uita tot ce am avut, am descoperit.
Am o aplicatie client server.
Serverul are ADOConnection, RemoteDtaModule, și DatasetProvider și ADODataset. Toate acestea sunt legate între ele.
Pe clientul are DCOMConnection, SocketConnection, ClientDataSet și DataSource1. Este sunt toate între toate legate.
Am rula serverul de pe o mașină și conectați prin intermediul Jet OLE DB Provider de baze de date MS Access. Eu stau jos, iar celălalt Inițiază un client și conectați la server prin rețea. Trimiterea orice interogare SQL și am trecut de ea, adică, totul funcționează bine.
Dar. există un lucru eu nu pot obține o listă de tabele sau de interogare SQL sau în orice fel de a altora.
Ufff. Deja cu respirația tăiată.
Nadeyust Acum neînțelegerile nu vor
Prin modul în care am uitat să spun că codul sursă program scris sub ADO COM sau SQL-Server cu propriile lor mâini, dar puțin schimbat.
și trehzvenka,
Metoda se poate face pe server și pe client îl juzat
ca aceasta
Procedura TRunUpdate.GetIncrem;
începe
ValIncrem: = AppServer.GetUpdeteNum (RecPam.CashNum);
se încheie;
AppServer este un lucru util, și acolo DCOMConnection și SocketConnection;
cum s transfer de sus (separate prin virgulă acolo sau altul), vă puteți gândi (în acest caz, care este transmis din numele dogadatsya posibile)
despre cererea,
pentru a da permisiunea de masa - Vino baza de ltkroy aksess-> Scule-> zaschita-> permite să mai departe suficient pentru a pune o căpușă în tabelul de dreapta la dreapta.
sau pentru utilizator
ramură de registru
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Jet \ 4.0 \ Motoare opțiune SystemDB
în cazul în care baza este Acces implicit, se pare, de asemenea, și plug-n (luând numele de registru este necesară, deoarece numele poate fi diferit)
parametru în șirul de conectare
Jet OLEDB: baza de date de sistem = system.mdb
numai de către cei care găsesc (de asemenea, în locuri diferite pot minți)
> Intră în ltkroy
citit
Veniți și descoperiți
> Suficient pentru a pune o căpușă în tabelul de dreapta la dreapta.
Pune-capusa, dar încă nu funcționează. - ((
Nici nu știu ce să fac. Poate că sunt complet mut, dar nu am nimic.
> Procedura TRunUpdate.GetIncrem;
> începe
> ValIncrem: = AppServer.GetUpdeteNum (RecPam.CashNum);
> End;
Puteți avea mai multe detalii și oshibshku apoi am compilat pentru a da GetUpdeteNum
> Pune-capusa, dar încă nu funcționează. - ((
> Eu nici măcar nu știu ce să fac. Poate că sunt complet mut, dar nu am nimic.
pentru a începe verificarea fără trehzvenki Direct Connect.
puteți doar Delphi sau prog gata
Cererile de inspecție poate trimite programul pe care el utilizat.
> Puteți avea mai multe detalii și oshibshku apoi am compilat pentru a da GetUpdeteNum
Firește că este metoda mea, descrie tine si serverul este numit cu clientul, și numai ceea ce el va trece, în principiu, nu contează, acesta este doar un exemplu, accesul la server prin metode DCOMConnection.AppServer.
Acum, această metodă este descrisă în serverul datamodule
Funcția TWCMetods.GetUpdeteNum (CashNo: Integer): Integer;
var StrFlag: string;
începe
Rezultatul: = 0;
încerca
if (CashNo> 0) și (CashNo <51) then begin
StrFlag: = StringOfChar ( "_", CashNo-1) + "1%";
ADOLocDSet.Close;
ADOLocDSet.CommandText: =
"SELECT Min (INCREM) CA INCREM DIN FlagOut UNDE CASH LIKE" "" + StrFlag + "" "ȘI Flag IN (1,2)";
ADOLocDSet.Open;
în cazul în care nu ADOLocDSet.IsEmpty atunci
Rezultatul: = ADOLocDSet.Fields [0] .AsInteger;
ADOLocDSet.Close;
se încheie;
cu excepția
se încheie;
se încheie;
> Start cec fără trehzvenki Direct Connect
Am verificat și este un astfel de lucru ciudat se dovedește. Toate ofertele fara probleme. Am decis să pun parola de administrator. Am pus.
Acum, când deschideți baza de date în Access necesită o parolă, și Delphi este posibilă fără o parolă. iar parola nu mă va lăsa. Acum, tu nici măcar nu știu cum să-l înțeleagă.
>>>>
Apoi am koechto un alt nakodil, dar într-un fel de eroare vylaziet poate explica?
DCOMConnection1.AppServer.AdoConnection1.GetTableNames (ListBox1.Items, false);
> Aici am koechto un alt nakodil, dar într-un fel de eroare vylaziet poate explica?
> DCOMConnection1.AppServer.AdoConnection1.GetTableNames (ListBox1.Items, false);
; O) este mai puțin probabil să lucreze, ListBox1.Items a căror componentă este? client. nu spațiul total pe care serverul cu privire la aceasta și nu cunoaște clientul și serverul (aproximativ Comp).
și ce greșeală, deși este? mi acest lucru nu a avut loc, și așteptați leneș pentru a face testul.
componenta Listbox1 pe client.
dar eroarea: „Nu Tip permise în apel Varianta Disphatch“.
Și pot să-ți spun sursele mele în e-mail veni?
> Despre Jet OLEDB: Sistem de baze de date = system.mdb
în general, un astfel de fișier nu există. Deși există o înregistrare în registrul de pe el. Acolo system.mdw.
A încercat să se conecteze rezultatul este același „Refuzul accesului la înregistrări citit (e) pentru MSysObjects obiect“.