![]() |
Re: Umstellung Paradox ->Firebird die 2.
Zitat:
Zitat:
Delphi-Quellcode:
Create() limitiert den Cache auf Size Einträge und definiert eine interne Lesefunktion. Mit Clear() kann der Cache geleert werden, um sich besser an eine neue Darstellung anzupassen. Mit Get() werden die benötigten Feldinhalte bereit gestellt, wobei key die recno des DB-Cursors ist und sich bei einer virtuellen ListView aus Succ(listitem.index) ergibt.
TReadonlyCache = class
... public constructor Create(Size: integer; onRead: TReadFunc); ... procedure Clear; function Get(Key: integer): string; end; Zitat:
marabu |
Re: Umstellung Paradox ->Firebird die 2.
Hi Marabu,
danke mochmal. Mir raucht der Kopf. Ich habe mich bisher nicht an SQL-Datenbanken herangetraut, da diese u.U. sehr langsam sind (KHK- Handwerkerpaket mit MS-SQL bei 300.000 Artikelsätzen 10 sec. für eine Suchanfrage unter Paradox 1 sec.) und einen grossen Installationsaufwand bzw. Probleme mit TCP/IP(localhost unter XP) besitzen, ausserdem kaum ausführbar auf älterer Hardware (ab AMD k6/600, P3/700). Firebird scheint da ja besser zu sein. Ich habe da bloss Manschetten, das die Performance meines Programmes durch ungünstige Zugriffsgestaltung leidet. Wenn du da noch ein paar Literaturhimweise hättest? Oder nen Beitrag in der DP? Ist es möglich, mit Firebird, einen Teil (readonly) der Datenbank auf der lokalen Festplatte zu halten und nur den verändelichen Teil(Tabellen) auf dem Server?(readonly = PLZ, Orte, Finanzämter - veränderlich = Kundendaten). Oder in einen Application-Cache oder sollte ich bei jedem Programmstart diese Daten in einen Stream kopieren und damit arbeiten? Ich hoffe, ich habe nicht zu grosse Löcher in den Bauch gefragt. Ansonsten muss ich das erstmal verdauen und dann step by step. mfg BrunoT |
Re: Umstellung Paradox ->Firebird die 2.
Zitat:
Deine Beschreibungen klingen so, als ob du bestehende Anwendungen aus der LAN-Welt durch "ein paar Änderungen am Quellcode" auf Client-Server migrieren möchtest. Das ist in der Regel unwirtschaftlich, besonders wenn das auch noch ein Forschungsgebiet für dich darstellt. Da wäre ein erfahrener Kollege an deiner Seite goldrichtig. Zitat:
Hier im Forum sind recht viele junge Leute unterwegs, die sich vielleicht in einer ähnlichen Lernsituation befinden, wie du. Vielleicht ergibt sich da noch etwas. Ich würde dich jetzt nur mit teurer Fachliteratur zuwerfen, die dir evtl. nicht wirklich was bringt. Zitat:
marabu |
Re: Umstellung Paradox ->Firebird die 2.
Zitat:
André |
Re: Umstellung Paradox ->Firebird die 2.
Zitat:
|
Re: Umstellung Paradox ->Firebird die 2.
Zitat:
Kann sein, dass das im FB1.5 anders ist, meine aussage bezog sich auf den FB1.0.3. |
Re: Umstellung Paradox ->Firebird die 2.
Hi Marabu,
ich bin hier um zu lernen. Die DP hat mir schon viel geholfen. zu den "langsamen SQL-Datenbanken": als EDV-Dienstleister bin ich oft über solche schlecht gemachten Client-Server-Applicationen gestolpert. Natürlich werde ich ein bestehendes Programm nicht zu SQL portieren(never touch a runnig system). Das ist ein neues Projekt, wo ich Teile aus alten Projekten recycle. Als Anfang mit Firebird habe ich mir natürlich eine vorhandene Programmlogik genommen, um mich nicht darum kümmern zu müssen. Zu den getrennt abgelegten Daten: Ich werde warscheinlich zwei Datenbankdateien auf dem Server ablegen, eine mit den veränderlichen Daten, die andere mit den statischen. Das erleichtert die Datensicherung und ist vieleicht auch für die Performance besser. Ach so: warum geht in einer Query der Filter nicht?(keine Datensätze) wozu benutzt man den überhaupt, wenn man alles mit SQL-Abfragen erschlagen kann?
Delphi-Quellcode:
oder hätte ich dort auch % nehmen sollen?
procedure TFinanzaemter.TabChange(Sender: TObject);
var F: string; begin begin if tab.tabindex = 26 then begin // ZQFinanzamt.Filtered := false ZQFinanzamt.Active := False; ZQFinanzamt.SQL.clear; ZQFinanzamt.SQL.Add('Select * from Finanzamt ORDER BY name'); ZQFinanzamt.Active := True; end else begin { F := format('Name = ''%s*''', [chr(Tab.TabIndex + 65)]); ZQFinanzamt.Filtered := false; ZQFinanzamt.Filter := F; ZQFinanzamt.Filtered := True; } ZQFinanzamt.Active := False; ZQFinanzamt.SQL.clear; ZQFinanzamt.SQL.Add('Select * from Finanzamt Where Name LIKE ''' + chr(Tab.TabIndex + 65) + '%'' ORDER BY name'); ZQFinanzamt.Active := True; end; end; end; mfg BrunoT P.S. @MagicAndre1981 Abfragen wie sonst? hat sich erledigt s.o. |
Re: Umstellung Paradox ->Firebird die 2.
Zitat:
Zitat:
marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:27 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