AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Access DB Portieren ohne Access installiert zu haben

Access DB Portieren ohne Access installiert zu haben

Ein Thema von FAlter · begonnen am 24. Sep 2008 · letzter Beitrag vom 24. Sep 2008
Antwort Antwort
Seite 2 von 2     12
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#11

Re: Access DB Portieren ohne Access installiert zu haben

  Alt 24. Sep 2008, 19:01
Felix, du hast wohl ein wenig heiß geduscht heute früh. Und damit meine ich irgendwas weit über 60°C über einen Zeitraum von mehr als 10 Minuten immer schön auf'n Kopf.

IOW: So wie du dir das denkst ist das Blödsinn.
Du wirst keine C-compatible API nutzen um mit der DB zu reden, das wäre ja total meschugge, wenn man sich die schönen Kapselungen ansieht. Zeos käme zum Beispiel mit SQLite klar, Zeos nutzt ogar einen SQL Präprozessor um die Unterschiede etwas platt zu bügeln.

Du wirst mit SQL auf deine DBs zugreifen, denn andere Optionen hast du nicht. Zum Konvertieren reicht dir ein "SELECT * FROM Xyz" auf der Jet-Seite.
Und da du anhand der Metadaten eine Tabelle in SQLite geriert hast, kannst du auch gleich ein INSERT Statement erzeugen, für diese Tabelle.

Wie Bernhard schon schrieb, immer schön Parameter nehmen und keine Werte in das SQL reinfriemeln.
Das gibt a) keine SQL injektions (was eh BLÖDSINN ist, da die DBs lokal vorliegen!!!) und b) erlaubt es dir das Statement "vorkompiliert" wiederholt auszuführen.
Du musst ja für jeden Datensatz aus Jet nur noch die Parameter ändern, aber das Insert-SQL bleibt ja das gleiche. Damit ersparst du es SQLite für jeden Datensatz das Parsing des Statements und die Berechtigungsprüfungen, etc.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von FAlter
FAlter

Registriert seit: 21. Jul 2004
Ort: Ostfildern
1.096 Beiträge
 
FreePascal / Lazarus
 
#12

Re: Access DB Portieren ohne Access installiert zu haben

  Alt 24. Sep 2008, 19:42
Hi,

Zitat von Bernhard Geyer:
Wie wäre es z.B. mit ZEOS. Einfach den dortigen DLL-Header verwenden wenn du unbedingt keine Komponenten willst.
Da müsste ich so viel ändern, dann kann ich auch gleich selbst was schreiben. Sorry, aber ich will eine Unit, und nicht noch zwei Units mehr und zwei Includes (und wer weiß, das diese zwei Units noch voraussetzen).

Zitat von Elvis:
Felix, du hast wohl ein wenig heiß geduscht heute früh. Und damit meine ich irgendwas weit über 60°C über einen Zeitraum von mehr als 10 Minuten immer schön auf'n Kopf.
Definitiv nicht, ich dusche morgends nicht, keine Zeit und zu müde.

Zitat:
wenn man sich die schönen Kapselungen ansieht.
Genau dass will ich ja machen, eine schöne Kapselung. Die entsteht immer nebenbei, wenn ich sie brauche... Und das ist a) kein neues Projekt, ich habe schon zwei andere Programme, die an diesem Datenbankkapselungs-Projekt hängen und b) weil ich Lust dazu habe. Und die wird mir keiner nehmen! Warum wollt ihr mich um den Spaß bringen? Delphi ist für mich derzeit ausschließlich Freizeit, arbeiten tue ich mit was anderem. Versteht doch einfach mal, ich habe beschlossen es so zu tun, weil ich es so will, weil ich Spaß daran habe.

Zitat:
Du wirst mit SQL auf deine DBs zugreifen, denn andere Optionen hast du nicht.
Intern schon, aber letztlich merke ich nix davon.

Zitat:
(was eh BLÖDSINN ist, da die DBs lokal vorliegen!!!)
Was macht das für einen Unterschied? Ob lokal oder nicht, wenn der User was eingibt, sollte das nicht (auch nicht versehentlich) zu SQL-Injections führen. Angenommen ein User gibt irgendwo

{code]Und dann stand da '--- Fertig! ---' auf dem Bildschirm.[/code]

Der unwissende User gibt das ein, Plötzlich ist die SQL-Anweisung Fehlerhaft, denn was nach dem -- kommt ist ein Kommentar. Und der String wurde ja durch das ' schon beendet.

SQL-Injections sind IMMER ein Problem, sie müssen nicht Absicht und nicht nur über Netzwerke geschehen.

Und nun Schluss für heute, es wird spät, und ich muss noch heiß duschen und mein Gehirn verbrennen...

Mfg
FAlter
Felix Alter
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

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

Re: Access DB Portieren ohne Access installiert zu haben

  Alt 24. Sep 2008, 21:19
Zitat von FAlter:
Zitat von Bernhard Geyer:
Wie wäre es z.B. mit ZEOS. Einfach den dortigen DLL-Header verwenden wenn du unbedingt keine Komponenten willst.
Da müsste ich so viel ändern, dann kann ich auch gleich selbst was schreiben. Sorry, aber ich will eine Unit, und nicht noch zwei Units mehr und zwei Includes (und wer weiß, das diese zwei Units noch voraussetzen).
Hast du überhaupt schon in die ZEOS bezüglich DB-DLL-Interface-Units reingeschaut?

Zitat von FAlter:
Genau dass will ich ja machen, eine schöne Kapselung. Die entsteht immer nebenbei, wenn ich sie brauche...
...
Intern schon, aber letztlich merke ich nix davon.
Ok, Es geht dann um eine Art Abstraktion wo du auf externer Ebene auf SQL verzichtest (Bzw. auf andere Weise DB-Neutral definierst wie es z.B. bei ECO auch der Fall ist)

Zitat von FAlter:
Zitat:
(was eh BLÖDSINN ist, da die DBs lokal vorliegen!!!)
Was macht das für einen Unterschied? Ob lokal oder nicht, wenn der User was eingibt, sollte das nicht (auch nicht versehentlich) zu SQL-Injections führen. ...
SQL-Injections sind IMMER ein Problem, sie müssen nicht Absicht und nicht nur über Netzwerke geschehen.
Könnte mir bei lokaler DB folgenen Angriffsfall vorsehen: Und zwar bei einer gut Passwort geschützten DB über SQL-Injection an Passwort/Verschlüsselung zu kommen. Hier wird es aber einfacher sein mit SoftICE, Debugger oder mittels "Spion-DLL" an die Zugangsdaten zu kommen

Zitat von FAlter:
Und nun Schluss für heute, es wird spät, und ich muss noch heiß duschen und mein Gehirn verbrennen...
Viel Spaß beim Duschen
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Access DB Portieren ohne Access installiert zu haben

  Alt 24. Sep 2008, 22:44
Zitat von FAlter:
Zitat:
Du wirst mit SQL auf deine DBs zugreifen, denn andere Optionen hast du nicht.
Intern schon, aber letztlich merke ich nix davon.
Für das was du hier vorhast (Daten von X nach Y pumpen) brauchst du nur
  • select a,b,c,d from abc
  • create table def(a sometype, b sometype,c sometype,d sometype)
  • insert into def(a,b,c,d) values(:a,:b,:c,:d)
Zitat:
Zitat:
(was eh BLÖDSINN ist, da die DBs lokal vorliegen!!!)
Was macht das für einen Unterschied?
...
SQL-Injections sind IMMER ein Problem, sie müssen nicht Absicht und nicht nur über Netzwerke geschehen.
Der Unterschied ist, dass lokale DBs immer ungeschützt sind.
Aber wie ich als "a)" bereits sagte, Parameter in dem Insert-Statement verhindern SQL Injections. Die Werte kommen als Variablen rein und der Parser hat nie etwas mit den Inhalten der Variablen zu tun.
SQL Injections sollte es seit Jahren eigentlich nur by diesen schrecklichen mysql_BLABLA PHP Krempel geben.

Überall sonst hat man Parameter zur Verfügung und sollte die auch immer benutzen Denn wer Werte in SQLs reinfriemelt frisst auch kleine Kinder!
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.198 Beiträge
 
Delphi 10.4 Sydney
 
#15

Re: Access DB Portieren ohne Access installiert zu haben

  Alt 24. Sep 2008, 23:05
Zitat von Elvis:
SQL Injections sollte es seit Jahren eigentlich nur by diesen schrecklichen mysql_BLABLA PHP Krempel geben.
Oder ASP.NET. .NET kann zwar Wunderbar mit parametrisierte Abfragen arbeiten, aber wer in seiner Doku primär SQL-Injection-Anfällige Beispiele bringt ist selbst schuld.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 22:27 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