DBE Administrator

0

Mam pytanko.
Podczas tworzenia bazy danych dBase w SQL przy pomocy delpgi, występuje problem z danymi tablicy typu numeric. Mie mogłem dojść dla czego, ustaliłem że jest to wina wersji w jakiej została stworzona baza danych. Ustawienia dokonywane są przy konfiguracji DBE Administratora. Jet to trochę kłopotliwe. Czy jest może jakoś sposób aby proglamowo zmienić ustawienia DBE Admin. Lub ustalić w SQL wersji bazy przy tworzeni tablicy?
DZięki.

0

nie wiem czy dobrze zrozumiałem, ale chodzi ci o programowe tworzenie aliasów??

pozdro.

0

Poniekąd tak, ale to nie rozwiązuje całkowicie problemu. Aby w pełni skonfigurować BDE konieczna jest zmiana języka z czym wyświetlania polskich znaków, rodzaj bazy danych Paradox, dBase... oraz to co wprawia mnie w zakłopotanie, byćmoże wynika to z braku mojej wiedzy - wersję bazy. Niewiem czy ktoś prubowal stworzyć bazę w SQL przy pomocy Delphi bez ingerencji w BDE Admin.

Dzięki za zainteresowanie [cya]

0

W helionie widziałem kilka świetnych książek do tego, o czym piszesz... nie są to może tanie książki, ale na pewno rozwieją wiele problemów. poza tym Wyzszą Szkołę Ekonomii I Administracji w Kielcach powinno być na nie stac, prawda?

Poza tym polecam alternatywne komponenty od BDA Admina, np. Zeos (jest za freee)

0

Gdyby było stać to bym nie zadawał takich pytań.
Dzięki i za to.

0

a więc tworzenie aliasów:

var
Table : TTable;
begin
{ Utworzenie aliasu. }
CreateDirectory('C:\LPARADOX', nil);
Session.AddStandardAlias('MyDatabase', 'C:\LPARADOX',
'PARADOX');
{ zapisanie zmian w pliku konfiguracyjnym BDE }
Session.SaveConfigFile;
{ Utworzenie tabeli. }
Table := TTable.Create(Self);
Table.DatabaseName := 'MyDatabase';
Table.TableName := 'MyTable.db';
end;

dafiniowanie pól:

Table.FieldDefs.Add('Customer', ftString, 30, False);

zaś typy pól

Typ pola Opis
ftUnknown Nieznany lub nieokreślony
ftString Pole znakowe lub łańcuchowe
ftSmallint 16-bitowa wartość całkowita ze znakiem (SmallInt)
ftInteger 32-bitowa wartość całkowita ze znakiem (Longint)
ftWord 16-bitowa wartość całkowita bez znaku (Word)
ftBoolean Wartość boolowska
ftFloat Wartość zmiennoprzecinkowa
ftCurrency Kwota pieniężna
ftBCD Wartości dziesiętna kodowanej binarnie (BCD – Binary-Coded Decimal)
ftDate Data
ftTime Czas
ftDateTime Data i czas
ftBytes Pole binarne stałej długości
ftVarBytes Pole binarne zmiennej długości
ftAutoInc Pole samoinkrementujące – 32-bitowa liczba całkowita automatyczni zwiększana przy każdym odwołaniu do pola
ftBlob Pole dużego obiektu binarnego (BLOB– binary large object)
ftMemo Pole Memo
ftGraphic Bitmapa
ftFmtMemo Sformatowane pole Memo
ftParadoxOle Pole obiektu OLE Paradox’a
ftDBaseOle Pole obiektu OLE dBASE’a
ftTypedBinary Typowane pole binarne

tworzenie def. indeksów:

Table.IndexDefs.Add('', 'CustNo', [ixPrimary, ixDescending]);

mogę pomóc tylko w tym na razie... jakbyś coś jeszcze potrzebował z takich rzeczy to pisz... mam nadzieję że pomogłem

pozdro.

0

Wielkie dzięki!!
W tym momencie jstem w pracy ale jak wrócę do domu to wstukam to do kompa.
Przeglądając to co napisałeś tak na szybko nie bardzo wiem czemu służą definice pól i indeksów. Domyślam się że roziązuje to problem rodzjau użytej bazy danych (dBase, Paradox) lecz bardziej skłaniał bym się ku wersji. Jeśli mógłbyś to opisać byłbym wdzięczny, lubię wiedizieć co wklepuję.
Jeśli chodzi o tworzenie aliansu to jest spoko, dzięki na pewno się przeda.

Jeszcze raz Dzięki!.

0

Może chodzi Ci o typ bazy jeśli wybierasz DBase to za pomocą tablelevel możesz programowo wybrać czy to ma być standard DBase III+, DBase IV czy DBase 7 to samo dotyczy Paradoxa. Ja miałem kiedyś ten problem przy tworzeniu z Delphi programowo tabeli a później DOS'owy Norton Commander nie chciał podejrzeć tak utworzonej tabeli i musiałem wybrać odpowiedni tablelevel.

procedure TForm1.Button1Click(Sender: TObject);
begin
with table1 do
begin
active := false;
tablelevel:=3;
tablename := 'c:\test\ZBIOR.DBF';
with fielddefs do
begin
clear;
add('pole1',ftstring,10,false);
add('pole2',ftstring,10,false);
add('pole3,ftstring,20,false);
add('pole_4',ftstring,5,false);
end;
createtable;
addindex('indeks1','pole_1',[]);
addindex('indeks2','pole_2',[]);
addindex('indeks3','pole_3',[]);
end;
table1.open;
end;

Myślę, że o to Ci chodzi jeśli nie to przepraszam.

Andrzej Górniak

0

Jest dobrze, mam za sobą pyłowe sukcesu kody które podesłali mi czarownik i Andrzej dużo mi pomogły. Tworzenie aliasu jest OK, nawet działa rozwiązuje to część problemu. Drugą część stanowi jak słusznie zauważył Andrzej level. Obaj podesłaliście mi jak zauważyłem w domu procedurę tworzenia bazy danych programowo, jest ok z tym że ja procedurę tworzenia tablic napisałem w SQL wykorzystując do tego TQuery. Tak więc przerabiać wszystko:( . Procedura którą przedstawił czarownik byłaby dobra na 100 gdyby można było w ten sposób zmienić level.
Prawdopodobnie jest to możliwe, jeśli można zmienić ustawienia za pomocą administratora to czemu nie za pomocą delphi. Zastanawiałem się czy aby SQL nie posiada takiej procedury, ale to chyba zły ślad.

Jeszcze raz wielkie dzięki wszystkim.

1 użytkowników online, w tym zalogowanych: 0, gości: 1