AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ini-Datei in DB-Feld verlegen

Ein Thema von baumina · begonnen am 31. Jul 2014 · letzter Beitrag vom 31. Jul 2014
Antwort Antwort
Seite 2 von 4     12 34      
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 12:25
denn diese bauen noch auf irgendwelche 16-Bit Windows-Funktionen auf
Ist das ein Gerücht, oder kannst Du das belegen?
Das Konzept der Ini-Dateien ist aus der "guten alten" 16-Bit Zeit.
MS schreibt auch das man das nur noch wegen einfacher Portierung von 16-Bit Code auch unter 32-Bit zur verfügung hat (http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx).

Lustig ist hier das man dir Registry empfiehlt ob diese ja auch schon wieder "böse" ist. Heutzutage würde man xml-"ini"-Dateien verwenden.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#12

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 12:32
Diese INI-Dateien müssen in die DB verlagert werden, damit ich von überall Zugriff drauf habe.
Ich würde hier gleich Nägel mit Köpfen machen und jeder DLL eine eigene Tabelle spendieren, die alle Einstellungen aufnimmt. Ähnlich verfahre ich in allen meinen Database-Applications: Einstellungen werden in Tabellen gespeichert, der Index ist die Benutzer-ID. Damit die Tabellen nicht zu umfangreich werden, verwende ich mehrere Einstellungstabellen:
  • Tabelle Benutzer für Benutzername, Passworthash, Formularpositionen und -größen, Farbeinstellungen und Sonstiges;
  • Tabelle BTab für Sortier- und Tabelleneinstellungen;
  • und je nach Bedarf noch diese und jene Tabelle.
Die Benutzertabelle enthält einen PK mit automatisch erzeugten IDs. Die anderen Benutzer-Tabellen verwenden die jeweilige ID ebenfalls als PK. Auf diese Weise kann bei Muli-User-Anwendungen jeder Benutzer seine individuellen Einstellungen speichern.

Lustig ist hier das man dir Registry empfiehlt ob diese ja auch schon wieder "böse" ist. Heutzutage würde man xml-"ini"-Dateien verwenden.
Oder gleich ein TClientDataSet verwenden, falls man keine Datenbank-Anwendung baut.

Geändert von Perlsau (31. Jul 2014 um 12:35 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 12:33
Eine Tabelle pro Dll ist nicht notwendig. Flexibler ist es diese als Schlüssel oder noch besser in eine eigene Tabelle zu verwalten.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 12:40
Es ist doch völlig Wurscht, ob jede DLL eine eigene Tabelle hat, oder ob es eine Gesamt-Tabelle gibt. Der DLL/Anwendung muss das egal sein. Die Implementierung der Zugriffsklasse/Interface muss das wissen und sonst keiner.

Ab dann habe ich alle Freiheiten der Welt und kann auch zum Testen einfach mal eine Dummy-Implementierung drunter hauen, oder eben eine Tabelle ansprechen, oder eben eine für jede DLL, oder für DLL x eine Datei, DLL y die Registry, für die Anwendung ein Zugriff auf alles zusammen ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 12:44
Die Erweiterung, um eine Dll ist dann aber einfacher. Zudem entspricht das eher (meinem) Verständnis von Normalisierung.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 13:01
Ich habe genau so einen Fall und mache es so: (s. DeddyH)

Delphi-Quellcode:
  IniFile:=TMemIniFile.Create('');
  Data:=TStringList.create;
  Data.Text:=TableIni.FieldByName('Data').AsString;
  IniFile.SetStrings(Data);
Danke, dafür werde ich mich entscheiden.

Danke auch allen anderen für die nützlichen Hinweise.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 14:33
Ich bin Urlaubsreif, ich merks, mir rennt zu dem die Zeit weg BIS zu meinem Urlaub, also beanspruche ich nochmals euch, sry.

baumina und Pointer ... da treffen schon immer zwei Welten aufeinander.

Meine Funktion in der DLL, die mit dem Hauptprogramm kommuniziert sieht so aus :

Delphi-Quellcode:
type
  TDBComProc = function( aTable, aCommand, aParam : pAnsiChar):integer of object;

var
  DBCommunicator : TDBComProc;

function DBCom(aTable, aCommand, aParam : Ansistring):Ansistring;
var
  pTable, pCommand : array[0..100] of Ansichar;
  pParam : array[0..200] of Ansichar;

begin
  result := '';
  if @DBCommunicator = nil then
  begin
    Exit;
  end;
  strPCopy(pTable,aTable);
  strPCopy(pCommand,aCommand);
  strPCopy(pParam,aParam);
  DBCommunicator(pTable,pCommand,pParam);
  result := StrPas(pParam);
end;
Die Array-Größe von 0..200 reicht mir für die Ini-Datei nun nicht mehr. Was muss ich denn da ändern, dass ich da keine festen Größen mehr haben muss?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)

Geändert von baumina (31. Jul 2014 um 14:37 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#18

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 14:39
Wieso machst Du es nicht wie MS und spendierst der Funktion einen Var-Parameter vom Typ integer? Der wird beim Aufruf mit der Größe des reservierten Puffers belegt und wenn zu klein, gibt die DLL die benötigte Größe in eben diesem Parameter zurück? Dann kannst Du den Speicher dynamisch anfordern und bist an keine fixe Größe gebunden.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 14:54
d.h. ich brauche nochmal eine Funktion in der dll, die mein Hauptprogramm erst mal nach der zu erwartenden Größe fragt?


EDIT : Ach ne ... oh man, ich muss nachdenken, schaffs aber grad nicht.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)

Geändert von baumina (31. Jul 2014 um 14:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#20

AW: Ini-Datei in DB-Feld verlegen

  Alt 31. Jul 2014, 14:58
Nicht unbedingt eine neue Funktion, aber neue Parameter.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 4     12 34      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz