Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Habe richtig Probleme mit meiner Datenbank... (https://www.delphipraxis.net/62475-habe-richtig-probleme-mit-meiner-datenbank.html)

SteffenG 5. Feb 2006 11:25

Datenbank: Paradox • Version: 7 • Zugriff über: TTable

Habe richtig Probleme mit meiner Datenbank...
 
Hallo,

ich habe im Moment irgendwelche unerklärbaren Probleme mit meiner Datenbank. Ich will einfach nur einen Information auslesen. Hier erstmal der Quelltext:

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var info: String;
begin
  table1.first;
  info := table1.FieldByName('spalteeins').AsString;
  Edit1.Text := info;
end;
So wie er da steht, geht der Quelltext.
Sobald ich aber den String 'spalteeins' durch eine Variable(String) ersetze, findet er diese Spalte nicht mehr, obwohl in dem String genau die gleiche Information steht.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var info: String;
begin
  table1.first;
  info := table1.FieldByName(datei).AsString;
  Edit1.Text := info;
end;
Ich habe wirklich kein Plan, was ich noch machen kann. Hier nochmal der Quelltext, wo die Variable datei der Wert zugewiesen wird, vielleicht hilft es ja weiter:

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  temp := TStringList.Create;
  temp.LoadFromFile('temp.txt');
  datei := temp.GetText;
end;

Die Muhkuh 5. Feb 2006 11:26

Re: Habe richtig Probleme mit meiner Datenbank...
 
Schon mal geguckt, was in datei drinne steht?

SteffenG 5. Feb 2006 11:31

Re: Habe richtig Probleme mit meiner Datenbank...
 
Zitat:

Zitat von Spider
Schon mal geguckt, was in datei drinne steht?

Jap, genau das was drinnen stehen soll!
Wenn ich es aber in ein edit.text kopieren lasse, steht da 'spalteeins||' Im Panel, Label, ShowMessage oder so werden diese 2 Striche nicht angezeigt.

Jetzt wo ich nochmal darüber nachdenke, muss ja irgendetwas beim auslesen der .txt falsch laufen... aber ich habe kein Plan was... In der .txt steht erst spalteeins, und darunter ist noch ne leere Zeile! Kann das damit was zu tun haben?

Ich sitze mittlerweile schon seit Gestern Abend an diesem Problem.

mkinzler 5. Feb 2006 11:32

Re: Habe richtig Probleme mit meiner Datenbank...
 
Dann stegt da zu viel drinn! 'spalteeins' != 'spalteeins||'. Nimm mal nur die 1.Zeile der Stringliste.

SteffenG 5. Feb 2006 11:42

Re: Habe richtig Probleme mit meiner Datenbank...
 
Zitat:

Zitat von mkinzler
Dann stegt da zu viel drinn! 'spalteeins' != 'spalteeins||'. Nimm mal nur die 1.Zeile der Stringliste.

Ich habe das jetzt geändert, jetzt steht in der Variablen datei wirklich nur noch 'spalteeins':

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  temp := TStringList.Create;
  temp.LoadFromFile('temp.mmr');
  datei := temp.CommaText;
end;
Trotzdem hat es nichts gebracht: "Table1: Feld 'spalteeins' nicht gefunden."

Ich verstehe langsam echt nicht mehr, warum das nicht geht...

marabu 5. Feb 2006 11:45

Re: Habe richtig Probleme mit meiner Datenbank...
 
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  datei := '';
  temp := TStringList.Create;
  try
    temp.LoadFromFile('temp.mmr');
    datei := temp[0];
  finally
    temp.Free;
  end;
end;
marabu

r_kerber 5. Feb 2006 11:50

Re: Habe richtig Probleme mit meiner Datenbank...
 
Was steht denn in temp.mmr? Und hast Du Dir auch mal angesehen, was TStingList.CommaText tatsächlich macht?
In der OH steht
Die Eigenschaft CommaText bietet beim Schreiben oder Lesen die Möglichkeit, sämtliche Listeneinträge eines Objekts von TStrings wie einen einzigen, durch Kommas getrennten String zu behandeln.

SteffenG 5. Feb 2006 11:54

Re: Habe richtig Probleme mit meiner Datenbank...
 
Zitat:

Zitat von marabu
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  datei := '';
  temp := TStringList.Create;
  try
    temp.LoadFromFile('temp.mmr');
    datei := temp[0];
  finally
    temp.Free;
  end;
end;
marabu

Bringt immer noch nichts. Ich sage ja, eigentlich kann es garnicht sein, dass es nicht geht... Wenn ich überlege, was ich schon alles ausprobiert habe...

Ich bin echt langsam am verzweifeln...
Hier nochmal der Quelltext, wo die datei temp.txt beschrieben wird.

Delphi-Quellcode:
procedure neufenster(artv, art: String; data: TStringList);
var datei: String;
begin
  datei := ExtractFilePath(Application.Exename);
  data := TStringList.Create;
  data.Clear;
  data.add(artv);
  data.SaveToFile(datei+'temp.mmr');
  ShellExecute(Application.Handle, 'open', PChar('"' + datei+'\data\system\'+art+'\Project1.exe' + '"'), nil, nil, SW_NORMAL);
end;
@r_kerber

Hmmm, aber dadurch bin ich diese 2 seltsamen Striche losgeworden.
Baer ich habe jetzt ja auch schon das von 'marabu' ausprobiert, aber das funktioniert ja auch net...

mkinzler 5. Feb 2006 12:04

Re: Habe richtig Probleme mit meiner Datenbank...
 
Was wurde als artv an Procedur NeuFenster übergeben?

Wenn beim Auslesen wirklich 'spalteeins' steht sollte es eigentlich funktioneiern. Post mal die Datei temp.mnr

SteffenG 5. Feb 2006 12:37

Re: Habe richtig Probleme mit meiner Datenbank...
 
Zitat:

Zitat von mkinzler
Was wurde als artv an Procedur NeuFenster übergeben?

Wenn beim Auslesen wirklich 'spalteeins' steht sollte es eigentlich funktioneiern. Post mal die Datei temp.mnr

artv wird der String 'spalteeins' übergeben. 'spalteeins' kommt wiederrum aus einer anderen Datenbank.
In der Datei Temp.mmr steht wirklich nur spalteeins und dann halt als ob man einmal Enter gedrückt hätte(wahrscheinlich wegen data.add)

es stimmt ja alles überein, nur nimmt Table 1 nur einen String an. Sobald ich da eine Variable einsetze geht es halt nicht mehr.
Was mir jetzt wieder aufgefallen ist, dass wenn ich datei vorher nochmal 'spalteeins' zuweise, dass es dann geht:
Aber das löst ja mein Problem nicht, weil sich datei ja ändern muss und aus temp.mmr ausgelesen werden soll.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var info: String;
begin
  datei := 'spalteeins';
  table1.first;
  info := table1.FieldByName(datei).AsString;
  Edit1.Text := info;
end;

marabu 5. Feb 2006 12:55

Re: Habe richtig Probleme mit meiner Datenbank...
 
Steffen,

öffne die Datei "temp.mnr" mit NotePad und gehe in den Speichern-Unter Dialog. Wenn da bei Codierung nicht ANSI steht, dann passe es an.

marabu

SteffenG 5. Feb 2006 13:01

Re: Habe richtig Probleme mit meiner Datenbank...
 
Zitat:

Zitat von marabu
Steffen,

öffne die Datei "temp.mnr" mit NotePad und gehe in den Speichern-Unter Dialog. Wenn da bei Codierung nicht ANSI steht, dann passe es an.

marabu

ANSI war eingestellt.

Ich habe jetzt schon fogendes probiert:

Delphi-Quellcode:
if datei = 'spalteeins' then
Showmessage('OK');
Da zeigt er mir auch OK an!

Das heißt jetzt, das in der Variablen datei wirklich das drinnen steht, was da reingehört, nämlich 'spalteeins'. Wenn ich der Variablen datei in Button2.Click am Anfang nochmal 'spalteeins' zuweise geht es. Wenn er aber den Wert 'spalteeins' über die temp.mmr bekommt, funktioniert es plötzlich nicht mehr, obwohl es exakt den gleichen wert hat... Ich Verstehe das einfach nicht mehr...

Ich meine das muss eigentlich gehen...

marabu 5. Feb 2006 13:44

Re: Habe richtig Probleme mit meiner Datenbank...
 
Versuche mal eine Minimalanwendung zu erstellen und stelle den Source und die Hilfsdatei hier ein, damit man den Code mal im Zusammenhang sieht und den Fehler nachvollziehen kann. Kann ja nicht mehr als 50 Zeilen sein. Ruckzuck ist das Problem gelöst - wetten dass?

marabu

SteffenG 5. Feb 2006 13:49

Re: Habe richtig Probleme mit meiner Datenbank...
 
Zitat:

Zitat von marabu
Versuche mal eine Minimalanwendung zu erstellen und stelle den Source und die Hilfsdatei hier ein, damit man den Code mal im Zusammenhang sieht und den Fehler nachvollziehen kann. Kann ja nicht mehr als 50 Zeilen sein. Ruckzuck ist das Problem gelöst - wetten dass?

marabu

Ich versuche gerade das ganze nicht mit einer 2. Anwendung sondern mit einem 2. Formular in die Tat umzusetzen. Sollte mir auch das nicht gelingen, werde ich die Minimalanwendung schreiben und hier hineinsetzen.

SteffenG 5. Feb 2006 14:06

Re: Habe richtig Probleme mit meiner Datenbank...
 
Ok, das hat auch nichts gebracht... ich poste jetzt den relevanten Quelltext von dem programm mit den 2 Forularen:

Unit1:
Delphi-Quellcode:
var
  Form1: TForm1;
  tuning, allginf, shops, repa: String;
  data: TStringList;

/...

procedure TForm1.ListBox2Click(Sender: TObject);
var A,T,S,R: String;
begin
  A := table2.FieldByName('Allgemeine Informationen').AsString;
  T := table2.FieldByName('Tuninganleitungen').AsString;
  S := table2.FieldByName('Shops').AsSTring;
  R := table2.FieldByName('Reparaturanleitungen').AsString;
  if A = '' then Button1. Enabled := false else allginf := A;
  if T = '' then Button2. Enabled := false else tuning := T;
  if S = '' then Button3. Enabled := false else shops := S;
  if R = '' then Button4. Enabled := false else repa := R;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
var datei: String;
begin
  data := TStringList.Create;
  datei := ExtractFilePath(Application.ExeName);
  if data.GetText <> '' then
  data.clear;
  data.SaveToFile(datei+'temp.mmr');
end;

procedure neufenster(artv, art: String; data: TStringList);
var datei: String;
begin
  datei := ExtractFilePath(Application.Exename);
  data := TStringList.Create;
  data.Clear;
  data.add(artv);
  data.SaveToFile(datei+'temp.mmr');
  if art = 'allginf' then
  Form2.ShowModal;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  neufenster(allginf, 'allginf', data);
end;
Unit2:
Delphi-Quellcode:
/...

var
  Form2: TForm2;
  temp: TStringList;
  datei: String;

implementation

uses Unit1;

{$R *.DFM}

procedure TForm2.Button1Click(Sender: TObject);
var info, Pfad: String;
begin
  pfad := ExtractFilePath(Application.Exename);
  temp := TStringList.Create;
  temp.LoadFromFile(Pfad+'temp.mmr');
  datei := temp.GetText;
  Edit1.Text := datei;

  table1.first;
  info := table1.FieldByName(datei).AsString;
  Edit2.Text := info;
end;

end.

Das müsste alles relevante sein. Mal sehen, ob ich heute noch weiterkomme... Eigentlich dachte ich, dass ich heute nochmal richtig schön Zeit hätte, ein wenig weiter zu programmieren. Naja, mal sehen

mkinzler 5. Feb 2006 14:08

Re: Habe richtig Probleme mit meiner Datenbank...
 
Bitte temp.GetText durch temp.strings[0] ersetze sonst hast du wieder die beiden Pipes ('||') am Ende.

SteffenG 5. Feb 2006 14:16

Re: Habe richtig Probleme mit meiner Datenbank...
 
Zitat:

Zitat von mkinzler
Bitte temp.GetText durch temp.strings[0] ersetze sonst hast du wieder die beiden Pipes ('||') am Ende.

:mrgreen:

Ich glaube das wars! ! Ich bin mir noch nicht ganz sicher, aber ich glaube jetzt gehts! :mrgreen:
Ich werde jetzt noch ein bischen weiterschreiben, um zu sehen, obs wirklich alles geht, aber ich denke schon!

Vielen Dank erstmal! ! ! :firejump:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:12 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