![]() |
Datenbank: BDE • Version: 5.01 • Zugriff über: BDE
Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Hallo,
Bitte jetzt nicht Lachen - ich weiß, BDE ist Tot, auch das Delphi 7, aber trotzdem die Frage(n): - ich möchte eine BDE-Datenbank erstellen, okay - dazu brauche ich Admin-Rechte, okay - die/der BDE-Administration läuft, okay (getestet, und okay) - manuell kann ich neue Datenbanken anlegen - ich verwende als Treiber: STANDARD - ich verwende als Tabellen-Typ: DBASE/PARADOX - ich kann manuell Pfade zu den Bestandsdatendateien setzen - die einzelnen .dbf Dateien können dann auch angesprochen, und angezeigt werden - leider schaffe ich es nicht, Datenbanken per Code, während der Laufzeit zu erzeugen - auch, nachdem das mein Programm im Admin-Modus gestartet wurde, wird die Datenbank nicht angelegt - den folgenden Code habe ich für meine Versuche verwendet
Delphi-Quellcode:
hat dazu jemand eine Lösung ?
procedure foo;
var BDE_found : Boolean; BdeAdmin : TDataBase; begin BDEAdmin := TDataBase.Create(nil); BDE_found := false; try try BDEAdmin.AliasName := 'DataBaseName'; BDEAdmin.DatabaseName := 'DataBaseName'; BDEAdmin.DriverName := 'STANDARD'; BDEAdmin.Open; except on E: EDBEngineError do begin for i := 0 to E.ErrorCount - 1 do begin case E.Errors[i].ErrorCode of 0: begin {no error} BDE_found := true; end; 1: begin ShowMessage('BDE Error:' + #13#10 + 'Number: ' + IntToStr(E.Errors[i].ErrorCode) + #13#10 + 'Message: ' + 'Database not found.'); end; 2: begin ShowMessage('BDE Error:' + #13#10 + 'Number: ' + IntToStr(E.Errors[i].ErrorCode) + #13#10 + 'Message: ' + 'Error in BDE-Config.'); end; 3: begin ShowMessage('BDE Error:' + #13#10 + 'Number: ' + IntToStr(E.Errors[i].ErrorCode) + #13#10 + 'Message: ' + 'Network BDE-Error.'); end; 4: begin ShowMessage('BDE Error:' + #13#10 + 'Number: ' + IntToStr(E.Errors[i].ErrorCode) + #13#10 + 'Message: ' + 'Access Table or Folder Problem.'); end; 5: begin ShowMessage('BDE Error:' + #13#10 + 'Number: ' + IntToStr(E.Errors[i].ErrorCode) + #13#10 + 'Message: ' + 'Internal BDE-Error'); end; else begin ShowMessage('BDE Error:' + #13#10 + 'Number: ' + IntToStr(E.Errors[i].ErrorCode) + #13#10 + 'Message: ' + E.Errors[i].Message); end; end; end; if not(BDE_found) then begin BDEAdmin.Free; BDEAdmin := nil; Close; end; end; on E: Exception do begin ShowMessage('Exception Error:' + #13#10 + 'Class: ' + E.ClassName + #13#10 + 'Message: ' + E.Message); BDEAdmin.Free; BDEAdmin := nil; Close; end; end finally ShowMessage('no errrror'); BDEAdmin.Close; BDEAdmin.AliasName := 'DataBaseName'; BDEAdmin.DatabaseName := 'DataBaseName'; BDEAdmin.DriverName := 'STANDARD'; BDEAdmin.Open; // hier kommt auch kein Fehler BDEAdmin.Free; BDEAdmin := nil; end; end; |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöle...8-)
Zitat:
Tu dir selber einen Gefallen. KEINE BDE, KEIN Paradox!. :warn: Leichte Alternativen: Firebird 3.0 (ist Ver. 4.0 schon brauchbar? :gruebel:): Moderne Datenbank mit SQL. Klein aber fein. :cheer: ![]() Mit einem 32Bit Programm kann man auch auf den 64Bit Server connecten. :zwinker: Firebird kann sowohl mit einem Server MultiUser oder auch Embedded einzeln. Das regelt der Connectionstring. :zwinker: Zugriffskomponenten FREE: ZEOS: Version 7.2 unterstützt D7 ![]() 1. Download Firebird. 2. Install Frebird 3. Download ZEOS 4. Install ZEOS ...dann melde dich wieder. :wink: PS: Ich designe die Datenbanken immer mit einem Admin Tool. Die Datenbank zur Laufzeit erzeugen (per SQL) geht, ist aber imho nicht das gelbe vom Ei. :zwinker: Admin Tool: DBeaver Community ![]() |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Als Ergänzung zum Beitrag von Andreas der Verweis auf
![]() ![]() ![]() Bis bald... Thomas |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
@paule32.jk
Du erstellst mit dem Code auch keine Datenbank, sondern allenfalls nur eine Verbindung zu einer nicht existierenden Datenbank. Du musst dann mindestens auch eine Tabelle erstellen. Für die BDE unter Delphi 7 kannst Du da die Komponente TTable nutzen. Dort im Objektinstektor oder per Code die Spalten definieren, bei Bedarf den einen oder anderen Index anlegen, den Tabellennamen vergeben, TDataBase-Komponenten zuweisen und dann die Tabelle erstellen.
Delphi-Quellcode:
Danach sollte dann eine Tabelle in Deiner "Datenbank" enthalten sein. Per SQL geht's auch über die Komponente TQuery.
if not Table1.Exists then Table1.CreateTable;
Da Paradox und DBase dateibasierte "Datenbanken" sind, können sie nicht "erstellt" werden. Sie bestehen praktisch nur aus einem Verzeichnis auf der Festplatte. Und solange noch keine Tabelle erstellt wurde, muss auch dieses Verzeichnis nicht existieren. Eigentlich ist eine Paradox- bzw. DBase-Datenbank nichts weiter als ein Verzeichnis auf 'nem Datenträger mit einer mehr oder weniger großen Anzahl von Paradox- bzw. DBasedateien. Eine Datenbank im eigentlichen Sinne gibt es hier nicht. Du machst also quasi alles richtig, im Programm besteht nur eine TDataBase-Komponenten die auf die Möglichkeit einer potenziellen Datenbank hinweist. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Ist ja schon eine ganze Weile her (daher: keine Garantie!), aber ich wenn ich mich recht erinnere musst du dazu
Delphi-Quellcode:
aufrufen. Der Alias ist dann aber permanent und ein weiterer Aufruf führt zu einem Fehler. Das kannst du aber mit
BDEAdmin.Session.AddStandardAlias(<AliasName>, <DataBasePath>, '');
Delphi-Quellcode:
vorher prüfen.
IsAlias
Es ist aber in der Tat so, dass das ganze BDE-Gedöns ab Windows Vista nicht mehr so wirklich funktioniert, ohne dass man da ein paar unschöne Verrenkungen einbaut. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
- Hook für Festplattengrößenabfrage wegen 32-Bit Überlauf - Drei Änderungen zur Laufzeit auf Assemblerebene in der idapi32.dll, damit es keine Zugriffsverletzungen gab, z.B. beim Beenden - Eine größere Änderung in der idapi32.dll zur Initialisierung der SHARED_MEM_LOCATION Dazu ein paar Konfigurationsanweisungen für Windows bei Nutzung von Dateifreigaben (LeasingMode für neue Versionen, Deaktivierung der OpLocks usw. für ältere, ...), dann lief die BDE echt gut. Aber die Verrenkungen und damit die BDE machen für neue Projekte keinerlei Sinn. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
|
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Hallo,
Danke Euch für Euer Feedback ! Ich habe mir aber mal erlaubt, doch mal bissl rumzubasteln und zu stöpseln ... Es geht mir ja auch dadrum, eine Datenbank zu Haben, die von unbedarften Usern installiert werden kann - Ihr wisst ja - GAUF - Größter Anzunehmender User Fehler... Man braucht auch keine Admin Rechte, um die Registry zu wursteln, aber ich habe mal im Code eine Abfrage eingetragen - sicher ist sicher ... nur mal so, ein Snippet:
Delphi-Quellcode:
function isAdmin: Boolean;
const DOMAIN_ALIAS_RID_ADMINS = $00000220; SECURITY_BUILTIN_DOMAIN_RID = $00000020; SECURITY_NT_AUTHORITY: TSIDIdentifierAuthority = (Value: (0, 0, 0, 0, 0, 5)); var Admin: Boolean; AdmGroup: PSID; Begin Admin := AllocateAndInitializeSid(SECURITY_NT_AUTHORITY, 2, SECURITY_BUILTIN_DOMAIN_RID, DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0, AdmGroup); If (Admin) Then Begin If (not CheckTokenMembership(0, AdmGroup, Admin)) Then Admin := False; FreeSid(AdmGroup); end; Result := Admin; end; // ------------------------------------------------------------- // rs_xxx are the Locale's .ENU, .DEU files. default is: ENU ... // ------------------------------------------------------------- resourcestring rs_Internal_Error = 'internal error.'; rs_BDE_notInstalled = 'No BDE Installation found !'; rs_BDE_Error = 'BDE Error:'; rs_BDE_AppStart_Rej = 'Aborted start.'; rs_App_First_Run = 'You run this Application at first race !' + #13#10 + 'Would You do a Setup of needed Stuff ?'; rs_App_User_Mode = 'You run this Application with User rights !' + #13#10 + 'If You confirm this Dialog with "Yes", it can be' + #13#10 + 'that the Application does not work.' + #13#10 + '' + #13#10 + 'Would You start the Application without Admin rights ?'; rs_ClassName = 'Class-Name: '; rs_Message = 'Message: '; rs_Exception_Error = 'Exception Error:'; rs_File_Exists = 'The file already exists !' + #13#10 + 'Would you override the old Version ?'; rs_BDE_EClassName = 'Error-Class: '; rs_BDE_ECode = 'Error-Code: '; rs_BDE_EMessage = 'Error-Message: '; rs_BDE_EFile = 'Error-File: '; rs_BDE_EModule = 'Error-Module: '; rs_BDE_EProc = 'Error-Proc: '; rs_BDE_ELine = 'Error-Line: '; rs_BDE_Error_TableDontExists = 'Table does not exists.'; rs_Win32_Registry_Error = 'Win32-Registry Error:'; procedure TForm1.FormCreate(Sender: TObject); const BDE_DLLs: array [0..2] of string = ( 'IDAPI32.DLL', 'IDR20009.DLL', 'IDR20009.DLL' ); BDEAlias = 'DataBaseName'; BDECoTbl = 'test.dbf'; BDELevel = 0; var I,J : Integer; text : WideString; xpos, ypos : Integer; row, col : Integer; S : String; B : Boolean; BDE_found : Boolean; Index : Integer; reg : TRegistry; H : HDBISes; letter1 : Char; letter2 : Char; buffer : Array[0..MAX_PATH] of Char; BDEList : TStringList; BDESession : TSession; BdeAdmin : TDataBase; BDETable : TTable; BDEQuery : TQuery; BDEDataSrc : TDataSource; SystemFolder: String; SQLstmt : String; stmtParams : TParams; procedure FreeBDESetup; begin if Assigned(BDEList) then begin BDEList.Clear; BDEList.Free; BDEList := nil; end; if Assigned(BDEQuery) then begin BDEQuery.SQL.Clear; BDEQuery.Free; BDEQuery := nil; end; if Assigned(BDETable) then begin BDETable.Close; BDETable.Free; BDETable := nil; end; if Assigned(BDEAdmin) then begin BDEAdmin.Close; BDEAdmin.Free; BDEAdmin := nil; end; if Assigned(BDESession) then begin BDESession.Close; BDESession.DeleteAlias(BDEAlias); BDESession.Free; BDESession := nil; end; if Assigned(reg) then begin reg.Free; reg := nil; end; if Assigned(h) then begin DBICloseSession(h); DBIExit; h := nil; end; end; begin // ------------------------------------------------- // first, check if the BDE is installed. // one step is, to locate the BDE Win32 Registry key // second step, try to locate per path. // ------------------------------------------------- BDE_found := true; reg := Tregistry.Create; try try reg.RootKey := HKEY_LOCAL_MACHINE; B := reg.OpenKeyReadOnly('SOFTWARE\Borland\Database Engine'); if not(B) then begin GetSystemDirectory(buffer, SizeOf(buffer)); SystemFolder := StrPas(buffer); for I := Low(BDE_DLLs) to High(BDE_DLLs) do begin if not FileExists(SystemFolder + '\' + BDE_DLLs[I]) then begin BDE_found := false; break; end; end; end except on E: Exception do begin ShowMessage(rs_Win32_Registry_Error + #13#10 + rs_ClassName + E.ClassName + #13#10 + rs_Message + E.Message); FreeBDESetup; Close; end; end; finally FreeBDESetup; if not(BDE_found) then begin ShowMessage( rs_BDE_notInstalled + #13#10 + rs_BDE_AppStart_Rej); Close; end; end; // ------------------------------------ // look, if database is present, if not // than try to create it ... // ------------------------------------ BDEAdmin := TDataBase.Create(nil); BDE_found := false; try try S := ExtractFilePath(Application.ExeName); S := S + 'data'; // ----------------------------------------- // warn the user, if run with admin rights // if true then check data + password, else // continue as normal user. // ----------------------------------------- if not(DirectoryExists(S)) then begin I := MessageDlg(rs_App_First_Run, mtWarning,[mbYes, mbNo],0); if I = mrNo then begin Close; end; if not(isAdmin) then begin I := MessageDlg(rs_App_User_Mode, mtWarning,[mbYes, mbNo],0); if I = mrNo then begin Close; end; end; CreateDir(S); end; // -------------------------------- // check, if 'databasename' exists // -------------------------------- if not(Assigned(BDEList)) then BDEList := TStringList.Create; BDEList.Clear; BDESession := TSession.Create(nil); BDESession.SessionName := BDEAlias; // no, then create it if BDEList.IndexOf(BDEAlias) < 0 then begin DBIInit(nil); DBIStartSession('dummy',h,''); DBIAddAlias(nil, PChar(BDEAlias), PChar('DBASE'), PChar('PATH=' + S), true); DBICloseSession(h); DBIExit; h := nil; end; // ------------------------------- // sanity check ... // ------------------------------- BDESession.Open; BDESession.GetDatabaseNames(BDEList); if BDEList.IndexOf(BDEAlias) < 0 then raise Exception.Create( 'BDE Error:' + #13#10 + 'internal Error.'); if not(Assigned(BDEAdmin)) then BDEAdmin := TDataBase.Create(nil); BDEAdmin.DatabaseName := BDEAlias; BDEAdmin.Directory := S; BDEAdmin.Open; try // ------------------------------- // check, if data table exists ... // ------------------------------- BDEQuery := TQuery.Create(nil); BDEQuery.DatabaseName := BDEAlias; BDEQuery.SQL.Text := 'SELECT COUNT(*) AS TableCount ' + 'FROM SYSALIASES A ' + 'INNER JOIN TABLES T ON A.PATH = T.PATH ' + 'WHERE A.ALIASNAME = ''' + BDEAlias + '''' + ' ' + 'AND T.TBLNAME = ''' + S + '\' + BDECoTbl + '''' ; BDEQuery.Open; except on E: EDBEngineError do begin BDE_found := true; for I := 0 to E.ErrorCount - 1 do begin // table does not exists... if E.Errors[I].ErrorCode = 10024 then begin BDE_found := false; break; end; end; if not(BDE_found) then begin try BDEQuery.Close; BDEQuery.SQL.Clear; BDEQuery.SQL.Text := 'CREATE TABLE ''' + S + '\' + BDECoTbl + ''' (' + 'COL1 int,' + 'COL2 int)'; BDEQuery.ExecSQL; except on E: EDBEngineError do begin for I := 0 to E.ErrorCount - 1 do begin case E.Errors[I].ErrorCode of 0: begin // no error break; end; 10024, 13057: begin // table exists break; end else begin ShowMessage(rs_BDE_Error + #13#10 + rs_BDE_EClassName + E.ClassName + #13#10 + rs_BDE_ECode + IntToStr(E.Errors[i].ErrorCode) + #13#10 + rs_BDE_EMessage + E.Errors[i].Message + #13#10 + rs_BDE_EFile + FileByLevel (BDELevel) + #13#10 + rs_BDE_EModule + ModuleByLevel(BDELevel) + #13#10 + rs_BDE_EProc + ProcByLevel (BDELevel) + #13#10 + rs_BDE_ELine + IntToStr(LineByLevel(BDELevel))); FreeBDESetup; Close; end; end; end; end; end end; end; end; // ------------------------------- // sanity check ... // ------------------------------- BDEList.Clear; BDEAdmin.DatabaseName := BDEAlias; BDEAdmin.Connected := true; if not(Assigned(BDESession)) then begin BDESession := TSession.Create(nil); BDESession.SessionName := BDEAlias; end; if not(Assigned(BDETable)) then BDETable := TTable.Create(nil); BDETable.DatabaseName := BDEAdmin .DatabaseName; BDETable.SessionName := BDESession.SessionName; BDETable.TableName := S + '\test.dbf'; except on E: EDBEngineError do begin for i := 0 to E.ErrorCount - 1 do begin case E.Errors[i].ErrorCode of 0: begin {no error} BDE_found := true; end; else begin ShowMessage(rs_BDE_Error + #13#10 + rs_BDE_EClassName + E.ClassName + #13#10 + rs_BDE_ECode + IntToStr(E.Errors[i].ErrorCode) + #13#10 + rs_BDE_EMessage + E.Errors[i].Message + #13#10 + rs_BDE_EFile + FileByLevel (BDELevel) + #13#10 + rs_BDE_EModule + ModuleByLevel(BDELevel) + #13#10 + rs_BDE_EProc + ProcByLevel (BDELevel) + #13#10 + rs_BDE_ELine + IntToStr(LineByLevel(BDELevel))); end; end; end; FreeBDESetup; Close; end; on E: Exception do begin ShowMessage(rs_Exception_Error + #13#10 + rs_BDE_EClassName + E.ClassName + #13#10 + rs_BDE_EMessage + E.Message + #13#10 + rs_BDE_EFile + FileByLevel (BDELevel) + #13#10 + rs_BDE_EModule + ModuleByLevel(BDELevel) + #13#10 + rs_BDE_EProc + ProcByLevel (BDELevel) + #13#10 + rs_BDE_ELine + IntToStr(LineByLevel(BDELevel))); FreeBDESetup; Close; exit; end; end finally FreeBDESetup; end; end; |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Moin...8-)
...du hast nicht richtig gelesen / zugehört! :warn: Zitat:
. . Zitat:
Lösung: Firebird Embedded. :zwinker: Alternative: SQLite (kein MultiUser), andere DLL * KEINE Installation der BDE beim Kunden...weil nicht gebraucht * KEIN Registry Gedöns * KEIN Admin Gedöns * KEINE Serverinstallation nötig. * Datenbank mit dem Programm mitliefern (eine Datei :thumb:) * mitliefern der DLL "fbclient.dll" ...fertsch. 8-) Laß von der BDE die Finger! :warn: Muß man dich zu deinem Glück zwingen? :zwinker: :wink: Fragen an dich (damit wir wissen welchen Kenntnisstand du hast): * Unterschied Table und Query? * was ist ein Index? * was ist SQL? * was ist SQL Injection? (für später) |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Statt einer Datenbank, die ohne Installation einfach so in deinem Anwendungsverzeichnis läuft? (Firebird Embedded) |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Hmm..
oder (nicht bashen) mit den ADO-Komponenten von D7 eine (alte) ACCESS Datenbank per OLEDB. Der alte OLEDB Treiber (Microsoft.Jet.OLEDB) für Access MDBs ist selbst bei Windos 11 noch per default installiert. Somit kann aus dem Programm heraus eine MDB erzeigt werden und dann per SQL Tabellen... Ergo: - Keine Installation auf dem Client, die Anwendung kann als Portabel verwendet werden... - Zwar besser nur SingleUse aber (eingeschränkt) auch von 2-3 Clients auf eine DB verwendbar.. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
@haentschman
Code:
Table = Ansammlung von (geordneten/strukturierten) Daten(sätzen),
die per einzeln per Datensatz (Record) zur Verfügung stehen. Query = Abfrage(sprache), mit denen Datensätze gesucht, gefiltert, geändert, werden können. Datensätze können aufgeteilt werden, so dass nicht die gesamten Daten (der Tabelle) in den Speicher des Client gehalten werden muss. Abfragen werden mit der Skript-Sprache SQL (Structured Query Language) eingeleitet/abgesetzt. Index = Als primär-Index für das Suchen verwendet, um die Datenbanl-Anfrage(n) mittels SQL schneller, und eindeutig zu bestimmen. Bei Unter/Sub-Kategorien können dann auch sekundär-Indexe erstellt werden. SQL = Abfrage Skript-Sprache für Queries Inject = Methoden, um SQL-Anfragen übers Netz zu manipulieren. Daher sollten alle Queries mit Parameter versehen werden. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
:wink:
Der Unterschied zwischen Table und Query ist: Im Prinzip sind TTable und TQuery alle TDataSet. Sie halten Daten. Der Unterschied ist: Die TTable holt IMMER ALLE Daten (select * from table). Die TQuery holt über SQL NUR die Daten die benötigt werden. (select yy from table where yy = z) Je größer die Tabelle, wird die TTable länger geladen...Heißt, daß das Mittel der Wahl immer die TQuery sein soll. :zwinker: Du mußt dich auch dringend mit den "Bausteinen" einer Datenbank beschäftigen. (SQL, Indizies etc.) Die sind wichtig. :wink: Dann wird es einfacher. Fürs Erste mußt du dich für eine Datenbank entscheiden. 8-) BDE fällt aus. :lol: Imho Access mit ADO auch. :thumb: Tutorial SQL: ![]() |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Du kannst bei der BDE nur dann sicher sein, dass es funktioniert, wenn du einen PC ohne Delphi zum testen verwendet. Alles andere ist sinnfrei, weil es falsche Ergebnisse bringt. Man meint, die BDE kann heute noch problemlos verwendet werden, ist aber nicht so. Delphi selbst sorgt schon dafür, dass die BDE richtig funktioniert. Übrigens ist Delphi 7 nicht tot. Das funktioniert auch auf Windows 10 und Windows 11. Ist bei sehr alten Projekten noch hilfreich. Zitat:
Es geht nicht darum, das aus einem Lexikon abzuschreiben. Wir wollen wissen, ob du dich mit SQL auskennst und entsprechende Select, Insert, Updates, etc. erstellen kannst. Bei BDE ist SQL nicht bei allen Datenmodellen notwendig. Bei den xBase kompatiblen Formaten konnte man das früher auch über modellinterne Techniken realiseren. Das ist aber eine veraltete Technik, mit der keine aktuelle Datenbank (OK, vielleicht Access) mehr arbeitet. Spätestens, wenn du beruflich programmiert und noch weitere Programmmierer involviert sind, muss man SQL können. Wenn du mit veralteten Datenmodellen arbeiten willst, sei es dir gegönnt. Nur wir arbeiten im Heute und nicht in der Vergangenheit. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Nur um das mal ganz deutlich zu machen....
Die Installationsdateine für die BDE von Borland gibt es oft nur aus zweifelhaften Quellen. Jeder User muss die haben. Bei jeder Installation des Programms müssen die ausgeführt werden. Mann sollte die nur als DER Domain Administrator ausführen. Die BDE installiert die BDEAdmin.exe im IDAPI Verzeichniss. Sollte diese Datei einemal ohne Domain Administrator zu sein und ohne UAC ausgeführt werden und man ausversehen speichern (OK beim beenden des Programms), dann ist die Registry der BDE kaput und man muss die BDE deinstallieren, die Registry Einträge löschen und die BDE dann neu installieren. Die BDE/Paradox geht regelmäßig kaputt...dann muss man die Daten reorganisieren. Nach einem Programm Absturz kann es sein, dass einige Tabellen weiterhin gelockt sind, dann muss man die P*.lck und P*.net löschen. Nach einem Rechnerabsturz sind oft die Index Dateien kaputt -> Indexe neu aufbauen Manchmal haben Tabellen abgespeicherte Keyviolations in der Datei auf dem Primary key und können nicht geöffnet werden. USW USW USW Wir haben die BDE noch Jahrelang am Leben gehalten, bei einigen Kunden bis heute! Das ist ein riesen Problem. Es ist mega aufwendig. Und die Menschen die sich mit diesem Dinosaurier auskennen werden auch weniger. Ich will dich nicht bashen eher RETTEN. Dein Post fühlt sich so ein bisschen an wie wenn jemand um hilfe für seine Nitroglyzerinflaschen in seiner Silbermine fragt und alle sagen ihm: "Nimm doch bitte was anderes! TNT, Stickstoffdünger+Diesel, Plastik Sprengstoff, Nobel Dynamit...alles alles nur nicht das!" Nochmals Entschuldigung. Was soll ich sagen ? Bitte spring nicht? |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Zitat:
Zitat:
Und bei Delphi 7 war der Installer ja auch dabei. Zitat:
Zitat:
|
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
@johndoe049
Der Text, den ich geschrieben habe ist nicht aus irgendeinen anderen Internet-Artikel abgeschrieben - er basiert auf meinen Wissenstanr, der, ich gebs ja zu, 10 bis 20 Jahre hinterher hinkt. Damals hatte ich sowohl MySQL mit PHP und anderen DB-System gearbeitet. Dann kam eine etwas unschöne Zeit, aber das brauch ich ja nicht hier zu schreiben. Die Programme, die ich bis jetzt programmiert habe sind nicht aus meinen Beruf entstanden. Somit sind auch viele Projekte, die ich auf git gelagert habe. Es handelt sich um Hobby-Produktionen, die aus dem mir zur Verfügung stehenden Privileg hier programmiert habe. Ich habe nie studiert oder Programmierer gelehrnt - Alles DIYS - und natürlich durch das durchstöbern des Internets, und Eurer Hilfen - Danke dafür ! Für größere Projekte, die über den Hobby-Niveau hinausgehen bin ich sicherlich nicht der beste - aber ich mach das aus/mit Freude. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Früher war die BDE im Delphi Bereicht Stand der Technik. Fast jeder hat es genutzt, wer es nicht genutzt hat wurde schräg angesehen. Heute ist es genau anders herum. BDE ist das Kennzeichen schlecht hin für veraltete Programmierung, unzufriedene Kunden/Nutzer und unnötige Mehrarbeit beim programmieren. SQLite ist für kleine Datenbanken heute mit das übliche. Firebird Embedded hat den Vorteil, dass der Umstieg auf den Server relativ einfach möglich ist. Für MsSQL gab/gibt es auch eine embedded Version, die ist aber Lizenzmässig zu komplex um die einfach mal so einzubinden. Vorteil von SQLite und Firebird: Wenn Delphi 7 zuviel nerft, kann man das problemlos auch mit Lazarus oder Delphi Community verwenden. BDE ist in der Hinsicht eine Einwegprogrammierung, die man nachher wegwirft. Früher habe ich persönlich mit FoxPro gearbeitet. Heute würde ich das nicht mehr anfassen. Zuviel Zeit geht damit verloren, dass am laufen zu halten und wenn man den Compiler wechselt war die bisherige Arbeit fast komplett wertlos. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Moin...8-)
Für welche Datenbank hast du dich entschieden? :zwinker: |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Ich schweife vermutlich jetzt ab, aber kann sich überhaupt noch jemand an
![]() Zitat:
![]() |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Code:
Fehler:
Runtime 217. Alte p*.lck und p*.net Dateien sind gelöscht worden. BDEAdmin läst sich einwandfrei starten Fehler tritt auf allen Workstations auf Lösung: Eine Tablle hatte einen zerstörten Header Kann man mit unserem Setup ermitteln Datei löschen und mittels Setup. Reorganisation neu anlegen lassen. Kann auch andere Dateien betreffen. Eine komplette Reorganisation ist empfehlenswert.
Code:
Fehler:
"BDE-CFG Pafd nicht gefunden." Die BDE ist nicht lauffähig Ursache: D-Info / Clicktel etc. ist installiert worden (die hinterlassen ein fehlerhafte BDE)(sie überschreiben die richtige) BDE-Dateien wurden gelöscht ohne die Registry zu ändern. Lösung: In der Windows Registry den Borland Pfad suchen und umbenennen. Danach neu installieren. Sollen Konfigurationen von anderen Programmen eingelesen werden, kann man mit dem BDEADMIN.EXE die IDAPI32.CFG Dateien einmischen Sollte die BDE bereits installiert sein und nur die Datenbankaliase nicht vorhanden sein können diese von Hand angelegt werden. Danach die Installation neu starten.
Code:
Auch toll Runtime Error 217 heist immer einfach das irgendetwas mit der BDE nicht stimmt...
Fehler:
Runtime 217 Lösung/Ursache: Die Language Einstellungen in der BDE-Konfiguration sind falsch. statt ANSI muss PDOX intl. eingestellt werden.
Code:
Fehler:
Indexfehler wird gemeldet. Lösung/Ursache: Die Tabelle war auf 256 MB angewachsen. in BDE-Admin - Treiber -Paradox LEVEL auf 5 oder 7 und Blocksize auch 16384
Code:
USW. USW.
Fehler:
Operation nicht anwendbar Lösung/Ursache: Mit dem BDEADMIN unter Konfiguration INIT folgende BDE Parameter auf folgende Werte einstellen LOW MEMORY USAGE 64 MAXBUFSIZE 8192 MAXFILEHANDLES 400 MEMSIZE 64 SHAREDMEMLOCATION 0x6BDE0000 SHAREDMEMSIZE 8192 Ich verstehe nicht warum man sich sowas antun sollte. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Es ist etwas das du kannst. Und es lebt noch. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
|
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Moin...8-)
@paule32.jk: Wir wüßten gern, ob wir dich von der BDE geheilt haben oder ob du in die Tiefe gesprungen bist. :zwinker: Bitte Ausfüllen: weiter helfen [ ] ich will nicht mehr [ ] |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Ich meine das in aller Güte.
BDE Paradox wird dich unglücklich machen! Wenn nicht gar schlimmeres. Bitte nimm die Zeos komponenten und irgend eine umsonst db wie Firebird, Firebird Embedded, Mariadb usw. Es muss nichtmal wirklich Firebird embedded sein! Mehrere "Named" Firebird server lassen sich nebeneinander installieren und haben einen Mini kleinen footprint. (Quasi so groß wie das füßchen eines neugeborenen). Der FB 2.5 Ordner hat 32MB und der Process wartet im leerlauf bei 1,1 MB im RAM die FBClient.dll im Anwendungsverzeichnis braucht 536kb auf der platte. Die installation ist auch einfach Firebird archiv entpacken (z.b. in das eigene Anwendungsverzeichnis) Dann
Code:
Schnell noch in firebird.conf den Port eintragen
cd c:\MeinProgramm\Firebird\Bin
Instsvc install -c -m -name FB_MEINPROGRAMM
Code:
und den Dienst starten.#cringeport RemoteServicePort = 1337 Das ist zwar nicht NULL Aufwand, wie bei FB embedded... aber immer noch besser als BDE... und so ein mini service tut auch nicht weh. Deinstallieren mit
Code:
nicht vergessen. Alternative zu instsvc remove wäre das Windows SC command
instsvc remove -name FB_MEINPROGRAMM
Code:
SC Delete FirebirdServerFB_MEINPROGRAMM
|
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
naja. Eigentlich ist es ja fast egal, was für eine Datenbank ich nehme.
Sollte halt SQL können, und ggf. frei erhältlich. Dazu fallen mir ein: - SQLite - MS-SQL Express - MySQL MySQL ist im Moment mein Favorit, der ich hin-tendiere, da diese auch mittels PHP Skript Zugriff erlaubt und nicht extra, ein weiterer Server installiert werden muss. Ist halt nur das Ding mit den Services, und den Ports. Wenn da irgendwann mal einer nicht geht, wie dann Support leisten. Wir kennen ja den Benutzer eines Windows-System's: - alle Programme, die auf der BILD-CD angepriesen werden installieren, und testen - eine Woche genutzt, nächstes Programm installiert - dann CCleaner drüber... nene, so wird das nichts. Ich sollte wohl erstmal die einzelnen SQL-Dialekte untersuchen, dann die richtige Datenbank wählen (SQLite oder Firebird), und dann mal sehen, wie größere Daten behandelt werden können. Denn mit nur 10 Records pro Tabelle, da tut es auch ne INI-Datei. Mir ist es halt lieb, das so wenig vom User im System rumgekriegselt wird, weil das wie oben beschrieben, den Support stark in Mitleidenschaft bringt. Was dann natürlich auch erstmal darauf zielt, allgemeine oder erweiterte AGB's zu formulieren, und während des Programm-Start's anzubieten. Dann ggf. Abfragen machen, ob der Benutzer diese auch wirklich gelesen und/oder verstanden hat. Klingt zwar lustig und pläde solche Abfragen einzubauen (weil die auch irgendwann nerven), aber wie will mann denn sonst seine Software absichern, so dass diese nicht gleich unter der Prämise Open Source oder GPL Lizenzsierung fällt. ? |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Avira benutzt Firebird und die wollen am ende irgendwie Geld für ihen Virenscanner sehen!
Keine Sorge. Firebird Embedded hätte den vorteil gegenüber SQLite, dass man auch eine echte Multiuser und Multiworkstations Andwendung draus machen kann in dem man nen Server installiert. SQLite hätte evtl. den Vorteil das man Teile des Codes für eine Smartphone APP verwedenn kann das SQLITE auf allen Smartphones installiert ist. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
vielleicht könnte man ja einen Mix machen ?
Option A: Desktop App = Server Version Option B: Mobile App = SQLite für die "zwischen" Speicherung bedeutet aber wieder "mehr" Arbeit wegen der Synchronisation. Oder gleich so programmieren, das man Thier-Awendungen bastelt, und ggf. NAT fähig macht. Also NAT im Sinne mit VPN: Man ruft mit einer mobile-App sein Home-VPN (ist in FritzBox mit drinn), und man hat dann einen geschützen Zugang, wenn man dann unterwegs ist. Option C: Mix aus A und B Option D: Mix aus C und VPN Dann müsste man aber auch sehen, das dies doppelt abgesichert wird: - keine fremden mobile-Nummern - neben VPN-Schutz, SSL Zertifikate - Client-Certs |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
MySQL ist mittlerweile unter den Fittichen von Oracle. Die haben gute und viele Anwälte! IANAL: Wenn du MySQL "free"/Community Edition benutzt, musst du auch deine Anwendung unter GPL stellen. Weiterhin problematisch: Die notwendige LIBMYSQL.DLL |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Hallo,
FreeSoftware, OpenSource, GPL, und Konsorten ... Irgendwann kommt doch Jedem die Einsicht, das freie Software eine Utopie ist. Damit meine ich auch das gutgelobte Betriebsystem Linux. Damit habe ich nach Windows, viele Jahre gearbeitet, und bin dann frustriert wieder auf Windows umgestiegen, da unter Linux die verschiedenen Distributionen die Packetmanager oder aber das System selbst sehr arg zusetzen können. Mal ein "unfertiges" Programm installiert, und schon muss man erstmal den Compiler anwerfen, und die richtigen Libs, und Header haben. Zu meinen Erstaunen ist Windows sehr gut gewachsen, und ich habe keinen BlueScreen seit weiteren Jahren entdecken können. Es liegt ja an jedem Selbst, ob er Erotic-Trojaner zieht oder die BILD-CD Programme alle haben will... Ich für mein Fazit kann sagen, das ich wieder besser mit Windows zurecht komme, als die plädde Fukellei unter Linux. Ich verstehe ja sowieso nicht, warum es hunderte von OpenSource Programmierer gibt, die sich per Donut über Wasser halten wollen. In Deutschland weiß ich gerade nicht so Recht, aber: Spenden müssen Zweckgebunden verteilt und/oder eingesetzt werden. Sprich: Ich kann damit eine Neue Tastatur oder für das Versenden von Datenträgern die fälligen Portokosten, aber keine Bratwurst kaufen. Schlußendlich macht es keinen Sinn, privat (sofern es nicht die Eigene Firma ist) irgend welche Programme zu basteln, und Hohen Gewinn erwarten - auch wenn man das hier und da erhältliche Delphi 7 oder C++ Builder 6 saugen kann. Denn wenn man dann mit solchen Versionen Gewinn erzielen will, dann kommen die Anwälte aus jeder Ecke und machen dann einen Platt. Ich kann mir schon gut Vorstellen, dass man feststellen kann, mit welchen Tool (Delphi, C++ Builder oder die ganze GNU Serie) das Programm oder Teile davon entwickelt wurden. Ich muss es ja zugeben, das ich auch mit einer drakcopy daher entwickle. Aber ich will damit keinen Gewinn machen, und stelle daher ALLE meine geistigen Ergüße fast alle unter MIT oder PD. Dann kann jeder selbst entscheiden, ob er mit seiner whitecopy versucht ein Programm zu übersetzen. Am Ende mache ich mich ja auch schon straffällig aufmerksam, weil ich den Schutz umgangen habe, ohne vorher die Lizenz zu lesen. Von daher ist es eigentlich auch egal, was ich da und womit ich bastle. Aber Danke für den Tipp. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Nebenbei: Da du im Profil Delphi 7 Enterprise angegeben hast, war das eh schon so gut wie klar. Das ist eine der am meisten illegal kopierten Versionen. Zitat:
Zitat:
Umso weniger Sinn macht es, eine uralte Raubkopie einzusetzen, sofern man die Lizenzbedingungen der Community Edition erfüllt. // EDIT: Ich meinte natürlich nicht, dass es sonst Sinn macht. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Für illegale Software gibt es keine Begründung. Beim Wunsch nach Unabhängigkeit und deiner Situation wäre Lazarus eine Alternative. Einfach installieren lässt es sich mit
![]() ![]() Bis bald... Thomas |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
das mit der 5000 Euro Marke ist ja auch noch bei mir so ein Ding...
Da ich Bewohner eines Wohnheimes bin, wird mir jedliches Zusatz-Einkommen wieder abgegolten. Sprich: Ich muss ALLES für den Wohnheimplatz aufwenden. Ich kann es ja Verstehen, dass, wo ich gerade bin, ein Subway ist. Aber ich habe da so mein kleines Problemjen auf den 1. Arbeitsmarkt wieder anzufangen. So nutze ich meine Privilegien hier als Berater - ohne dafür extra Geld zu Verlangen. Es ist nicht gerade die höchste Position als Bewohnerbeirats-Vorsitzender, aber mir macht das Spaß. Und den Rest der Zeit verbringe ich mit meinen Hobby - Programmieren. Viele bei uns haben *kein* Hobby, und man kann sich ja vorstellen, was dann kommt. Aber ja: Ich habe die neue Community Version schon begutachtet, und muss erstmal wieder neu reinschnuppern. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Ach so: „Weil ich eh schon eine Raubkopie einsetze, sind auch weitere/andere Lizenzbestimmungen sowieso egal“
Naja. Da bin ich raus. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Fazit: Lade die Community Edition runter, installiere sie und benutze sie! |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
nein.
Mir ist es nicht egal, was die Lizenzen schreiben. Ich wollte damit ausdrücken, dass es egal ist, was ich mache - Nichts tun zum Beispiel. Ich beziehe kein Bürgergeld. Und ich bekomme sonst keine Anreize, mir Arbeit mit meinen Hobby zu Suchen, weil, wie ich schon schrieb, ALLES für andere Aufwendungen eingekramt wird. Oder würdet Ihr um 6 Uhr Morgens aufstehen, dann eine Stunde zur Arbeit und zurück, bis 15 Uhr jeden Tag ein Tag aus, für 80 Euro im Monat ? Und warum mach ich das ? - weil ich nicht als Sozialschmarotzer dastehen will, wenngleich ich das in einen bestimmten Rahmen auch mache. Aber Ihr habt Recht - illegale Rechtfertigungen bleiben illegal - das verstehe ich ja. Das Windows 10 wurde ja auch als kostenlosen Download sowie auf ISO Angebote verkauft. Da kostete das System um die 20 Euro - das ging ja noch. Aber Heute ist das wieder viel teurer und das saugen wohl sicherlich auch nicht mehr legal. Es gab ja mal in der Computer-Zeitschrift CT ein Personal Delphi. Das fand ich irgendwie gut zum basteln und ausreichend für Pascal lernen mit Windows Knöpfen. Ihr müsst entschuldigen, ich habe seit 2 Dekaden keinen Überblick mehr... |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
Dabei vergessen leider viele, dass man ja nicht nur z.B. 80 Euro bekommt, sondern das Geld zum Leben / Heim / whatever. Das wird nur als selbstverständlich gegeben bestrachtet, so dass man dann nur die 80 Euro mehr sieht. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Ja, es gab mal die Personal und Andere Versionen, z.B. in Zeitschriften oder Büchern.
Dann gab es die Turbo Explorer, später die Starter, zwischendurch heimlich auch mal das Appmethod Free und nun eben die Community Edition, als kostenlose Varianten. ![]() Community Edition = lebt schon länger als erwartet und die aktuelle Version ist neuer, als man je zu träumen glaubte. (bis vor Kurzen war sie immer mindestens ein Jahr veraltet älter) Appmethod = Ohne Wörter wie Delphi, Borland oder Embarcadero im Namen oder auf der Webseite, damit niemand sofort bemerkt, dass es eigentlich Delphi ist. |
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
|
AW: Delphi 7 - BDE 32-Bit - Wie eine Datenbank und/oder Alias erstellen ?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz