Delphi i Database

5 отговора 291 прегледа
#1

Delphi i Database

Zdraveite, kazvam se Kristina i sym zatynala do gusha v Delphi, neznam veche kvo da pravq!
Ako nqkoi moje da mi pomogne shte sym mu mnogo blagodarna!
Problema mi e sledniq:
Imam dadena Baza danni (Access-ka) i sym napravila edno prilojenie pod delphi, v koeto iskam da izvadq spisyka na tablicite ot bazata v List box-a, rovih v Helpa i mi popadna nqkakyv class TSession obache i s nego nishto ne mojah da napravq, trqbva da stane bez ADO!
Kakvo da pravq??

Отговор
в отговор на Kristina #2

Re: Delphi i Database

Значи Кристина от Делфи 5 нагоре си има контроли за ADO (ADOConnection, ADOTable, ADOQuery и т.н.) използвай тях

---
Сънуваш ли баница - яж!
ShadowM
Отговор
в отговор на Kristina #3

Re: Delphi i Database

Ами може да ги получиш и ако ползваш BDE-то на този адерс има пример. Другият начин ако нямаш ADO е да си импортираш ActiveX а на micro$oft и да ползваш ADO-то от там.

Ето го примера:

procedure TForm1.Button1Click(Sender: TObject);
var
db1: TDatabase;
hCursor: hDBICur; // Cursor for table and query names
ListDesc: TBLBaseDesc; // Record of the cursor
begin
ListBox1.Clear;
db1 := nil;
try
db1 := TDatabase.Create(nil);
// Set the neccessary properties to open your database
db1.DatabaseName := 'Access_ODBC_Test';
db1.LoginPrompt := False;

db1.Connected := True;

// Generates a cursor with all table and query names
Check(DbiOpenTableList(db1.Handle, False, False, '*', hCursor));

// Move thru the records of the cursor to get the names
while (DbiGetNextRecord(hCursor, dbiNOLOCK, @ListDesc, nil)
= dbiErr_None) do
if ListDesc.bView then // Is it a query?
ListBox1.Items.Add(ListDesc.szName + ' (Query)')
else
ListBox1.Items.Add(ListDesc.szName + ' (Table)');

// Close the cursor
dbiCloseCursor(hCursor);

db1.Connected := False;
except
db1.Free;
raise;
end;
db1.Free;
end;


Колкото до TSession, Help-a казва:

MyStringList := TStringList.Create;
try
Session.GetTableNames('DBDEMOS', '*.db',False, False, MyStringList);
{ Add the table names to a list box }
ListBox1.Items = MyStringList;
finally
MyStringList.Free;
end;


AquilaX

Редактирано от AquilaX на

Отговор
в отговор на ShadowM #4

Re: Delphi i Database

А за DAO / Jet DB Engines няма ли? Щото то Access е това...

Отговор
в отговор на ironcode #5

Re: Delphi i Database

ami trqbva da se napravi s standartnite klasove na delphi 5

Отговор
в отговор на Kristina #6

kod

imash predwid da se se polzwa BDE za dostyp do dannite li? ako e taka:

1. slagash si Databas komponenta wyw formata
2. na Alias Name i zadawash alias-a kojto predwaritelno prawish za bazata danni w bde admin-a
3. na mqstoto kydeto iskash da ti se popylni listbox-a pishesh:

Database1.GetTableNames(ListBox1.items);

kydeto: Database1 ti e imeto na komponentata Database
ListBox1 ti e imeto na listbox komponentata

Ako e towa koeto tyrsish, oba4e neshto ne se polu4awa - moga da ti pratq i primer, ako iskash.

ni shta!
Отговор