AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DB-Anbindung ohne VCL...?
Thema durchsuchen
Ansicht
Themen-Optionen

DB-Anbindung ohne VCL...?

Ein Thema von Leon de Bar · begonnen am 5. Nov 2004 · letzter Beitrag vom 5. Nov 2004
Antwort Antwort
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#1

DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 17:42
Hallo,

ich muss noch einmal mit diesem Thema nerven.

wie ich eine DB-Anbindung ohne die Komponenteneinrichtunge hin bekomme ist mir ja klar und auch gelungen... was ich nicht hinbekomme ist diese auch aus anderen Forms aufzurufen und zu nutzen.

das ist was ich bisher mache:

Delphi-Quellcode:
  dbName := dataDir+'\p2vvw.mdb';
  DataSource:= // Link zur DB setzen
    'Provider=Microsoft.Jet.OLEDB.4.0' +
    ';Data Source=' + dbName +
    ';Persist Security Info=False';
  ADOConnection1.ConnectionString := DataSource;
  ADOConnection1.LoginPrompt := False; // Kein Loginfenster
  ADOCommand1.Connection := ADOConnection1; // Connect zur DB hersellen
Dabei ist dataDir eine Variabel mit dem aktuellen Pfad des Programms, der aus einer prozedur kommt. Der Code steht in meinem TForm1.FormShow.

Nun möchte ich aus meiner Form3 daten aus meiner DB holen. das klappt aber nicht, weil ich wahrscheinlich erst noch die ADOConnection öffnen muss oder? wenn ja, dann muss ich das bitte wie machen?

sage ich nämlich Form1.ADOConnection.Open, dann will mein Prog den Benutzernamen und das PW haben (welches nicht existiert und auch beim ersten mal nicht benötigt wird). wo ist mein fehler???

Thx.

P.S.: ich hoffe meine Kommentare im Code sind richtig?
  Mit Zitat antworten Zitat
der-C

Registriert seit: 29. Okt 2004
68 Beiträge
 
Delphi 6 Professional
 
#2

Re: DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 18:12
also TForm.Formshow wird immer aufgerufen wenn wenn du z.B. Form1.show sagst, das heisst wenn du form1 am anfang auf visible = false setzt dann wird deine verbindung garnicht erst geöffnet.
(ganz zu schweigen was passiert wenn du zweimal hintereinander Form.show machst)

besser währe hier Form.OnCreate das wird einmal zum Programmstart aufgerufen und somit ist die DB gleich am Anfang geöffnet.
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 18:16
... ...

ich habe es ins FormShow gepackt, weil ich dort eine Procedur aufrufe. diese wiederum ermittelt mir den Pfad...

wenn ich nun meinen restlichen code (siehe oben) ins Create packe, dann komme ich an den wert der variablen nicht mehr ran. wie kann ich mir den Inhalt der variablen erhalten?
  Mit Zitat antworten Zitat
der-C

Registriert seit: 29. Okt 2004
68 Beiträge
 
Delphi 6 Professional
 
#4

Re: DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 18:37
und die funktion zum hohlen des Pfades kannst du nicht am anfang aufrufen?
oder du überprüfst ob die DB schon geöffnet ist (vieleicht mit ner globalen Variable (true nach öffnen der DB),
oder vieleicht es gibt eine Eigenschaft die dir sagt ob die Verbindung schon besteht)
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 19:04
nein leider kann ich das nicht im create machen sondern muss es bereits im show machen.

zur erinnerung. ich bin ein newbie in delphi und würde mich über kurze codebeispiele freuen, dann kann ich mir auch vorstellen was du meinst...

wenn ich eine globale variable deklariere, kann ich die dann von überall her abrufen oder nur nutzen ohne sie neu zu deklarieren... mein prob ist eben, dass ich den inhalt von einer variablen vom weg form1 zu form3 verliere...

naja, und ich muss doch globale variablen doch nur unter var VOR dem implementation bringen oder?
  Mit Zitat antworten Zitat
der-C

Registriert seit: 29. Okt 2004
68 Beiträge
 
Delphi 6 Professional
 
#6

Re: DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 19:20
Zitat:
Nun möchte ich aus meiner Form3 daten aus meiner DB holen. das klappt aber nicht, weil ich wahrscheinlich erst noch die ADOConnection öffnen muss oder?
heisst das das es passieren kann das Form1.onShow noch nicht ausgführt wurde (also die verbindung zur DB noch nicht besteht), befor du Form3 verwendest?

um zu verhindern das zweimal connected wurde kannst du ja abfragen ob connected = true ist
Delphi-Quellcode:
if Form1.ADOConnection1.Connected = false then
begin
...
 dbName := dataDir+'\p2vvw.mdb';
  DataSource:= // Link zur DB setzen
    'Provider=Microsoft.Jet.OLEDB.4.0' +
    ';Data Source=' + dbName +
    ';Persist Security Info=False';
  ADOConnection1.ConnectionString := DataSource;
  ADOConnection1.LoginPrompt := False; // Kein Loginfenster
  ADOCommand1.Connection := ADOConnection1; // Connect zur DB hersellen
...
end;
dann könntest du das auch in Form.Show ausführen

hoffentlich versteh ich dein problem richtig.
  Mit Zitat antworten Zitat
der-C

Registriert seit: 29. Okt 2004
68 Beiträge
 
Delphi 6 Professional
 
#7

Re: DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 21:00
irgentwie gehen fie PM´s nicht mehr ausm Postausgangsordner(werden grad nich gesendet), oder es dauert extrem lange
deswegen poste ich mal die nachricht hier:

eigentlich müsste es funktionieren aber, es könnte sein das die datenbak mit dem Createn nicht hinterher kommt.
füge mal ein   Application.ProcessMessages vor form2.schowmodal ein oder
sleep(30) (30 ms)(vieleicht auch mal höher einstellen z.B.100)
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#8

Re: DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 21:26
bringt nichts. ich bekomme dann immer eine Fehlermeldung.

habe ich das richtig verstanden, dass erst ALLE creates und dann shows abgearbeitet werden?
  Mit Zitat antworten Zitat
Leon de Bar

Registriert seit: 1. Okt 2004
Ort: Berlin
125 Beiträge
 
Delphi 6 Enterprise
 
#9

Re: DB-Anbindung ohne VCL...?

  Alt 5. Nov 2004, 21:50
Hallo Der-C,

ich habe es lauffähig bekommen, wenn ich auch allen in Form3 ins ONSHOW mache. aber dann kann ich ja niemals in meinem Prog das OnCreate nutzen oder? ich muss also immer daruaf achten, dass ich alles ins OnShow packe?


NACHTRAG:

Habe mein Prob gelöst. mittels deiner info muss ich natürlich fast alles in OnShow bringen. ich habe lediglich die Pfadsuche, den Namen der DB und die und die Connection in meinem OnCreate.

der rest läuft über das OnShow. Nun habe ich (zunächst einmal) keine Fehlermeldung mehr und es läuft rund. Danke für Deine Hilfe!!!

JUNGs und MÄDELs ihr seid hier einfach

[Edit] der Nachtrag [/Edit]
  Mit Zitat antworten Zitat
Antwort Antwort


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 15:38 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