Entwickler-Ecke

Datenbanken - Fehlermeldung bei der Suchfunktion meiner Datenbank


H0mer1234 - Sa 08.05.10 10:01
Titel: Fehlermeldung bei der Suchfunktion meiner Datenbank
Hallo,

ich programmiere gerade eine Datnbank mit eingebauter Suchfunktion. Wenn ich allerdings das Programm starten möchte kommt folgende Fehlermeldung (im Dateianhang)
Die Fehlermeldung erscheint immer dann, wenn ich Buchstaben eingeben möchte.
Wisst ihr eine Lösung?

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Weiß keiner Rat?


jaenicke - Sa 08.05.10 11:12

Hallo und :welcome: im Forum!

Naja, das könnte daran liegen, dass die BDE seit vielen Jahren (fast 10) nicht mehr weiterentwickelt wird und die deshalb fast nirgends mehr verwendet wird. :nixweiss:
Für ernsthafte Verwendung ist die BDE einfach nicht mehr geeignet.

Die Fehlermeldung hört sich danach an als ob in der Tabelle kein Index ausgewiesen ist. Aber genaueres zur BDE wird kaum noch jemand sagen können.

// EDIT:
Außerdem ist pushen hier im Forum erst nach 24 Stunden erlaubt... :roll:
Etwas mehr Geduld als 20 Minuten wirst du ja aufbringen können, wie soll in derart kurzer Zeit denn jemand antworten?!?


Xion - Sa 08.05.10 13:10

user profile iconH0mer1234 hat folgendes geschrieben Zum zitierten Posting springen:
Die Fehlermeldung erscheint immer dann, wenn ich Buchstaben eingeben möchte.

Hast du auch nen Quelltext dazu? Wenn ich Buchstaben eingebe kommen keine Fehlermeldungen :P

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Naja, das könnte daran liegen, dass die BDE seit vielen Jahren (fast 10) nicht mehr weiterentwickelt wird und die deshalb fast nirgends mehr verwendet wird.

Verstehe nicht warum das den Fehler produzieren sollte :gruebel:

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Für ernsthafte Verwendung ist die BDE einfach nicht mehr geeignet.

Windows ist auch nicht fürs zuverlässige Arbeiten geeignet, wird aber auch verwendet.Ok, die BDE läuft nicht aus Vista, soviel ist klar. Im Gegensatz zu ADO (Access) hatte ich mit der BDE bedeutend weniger Probleme.


jaenicke - Sa 08.05.10 14:00

user profile iconXion hat folgendes geschrieben Zum zitierten Posting springen:
Verstehe nicht warum das den Fehler produzieren sollte :gruebel:
Das bezog sich auf die Frage direkt davor. ;-) (Ob keiner Rat weiß.)
Dass er schon nach 20 Minuten diese Frage gestellt hat (:autsch:), habe ich ja erst hinterher gesehen...

Was Probleme angeht: Du Glücklicher, sei froh, dass es dir nicht wie vielen anderen ging...


Xion - Sa 08.05.10 14:34

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:

Was Probleme angeht: Du Glücklicher, sei froh, dass es dir nicht wie vielen anderen ging...

Ok, ich muss zugeben, ich hab immer nur einfache Datenbanken gemacht...sozusagen einfach nur Tabellen. Dafür hats immer gereicht und es lief auch prima im Netzwerk (wenn man erstmal weiß wie ^^ aber das muss man immer erstmal wissen)


H0mer1234 - Sa 08.05.10 19:16


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
unit UnitMus;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, DBCtrls, StdCtrls, Buttons, ExtCtrls, Grids, DBGrids,
  DBTables, Mask;

type
  TForm1 = class(TForm)
    Table1: TTable;
    DataSource1: TDataSource;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    BitBtn1: TBitBtn;
    Panel2: TPanel;
    DBNavigator1: TDBNavigator;
    Table1TITEL: TStringField;
    Table1INTERPRET: TStringField;
    Table1ART: TStringField;
    Table1MEDIUM: TStringField;
    Table1EPOCHE: TStringField;
    Table1ERWERB: TDateField;
    RadioGroup1: TRadioGroup;
    Panel3: TPanel;
    DBEdit1: TDBEdit;
    Label1: TLabel;
    Table1AUTOR: TStringField;
    DBEdit2: TDBEdit;
    DBEdit3: TDBEdit;
    DBEdit5: TDBEdit;
    DBEdit6: TDBEdit;
    DBEdit7: TDBEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    DBComboBox1: TDBComboBox;
    RadioGroup2: TRadioGroup;
    RadioGroup3: TRadioGroup;
    Label8: TLabel;
    DBEdit4: TDBEdit;
    Table1DAUER: TStringField;
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure RadioGroup1Click(Sender: TObject);
    procedure RadioGroup2Click(Sender: TObject);
    procedure RadioGroup3Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormShow(Sender: TObject);
begin
 //Datenbank im gleichen Ordner wie Programm:
 table1.DatabaseName:=ExtractfilePAth(paramstr(0));
 // Table öffnen:
 if not table1.active then table1.Open;
 dbgrid1.Align:=alclient;
 panel3.Align:=alclient;
 dbgrid1.Hide;
 radiogroup1.itemindex:=0;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  //Letzte Änderungen in DBF übertragen:
   if (table1.State = dsEdit)or (table1.State = dsInsert)
    then    table1.Post;
  //Table schließen:
  if table1.active then table1.Close;
end;

procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
 //Maske oder Liste zeigen:
 panel3.visible:=Radiogroup1.ItemIndex=0;
 dbgrid1.visible:=Radiogroup1.ItemIndex=1;
end;

procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
If Radiogroup2.ItemIndex = 0
   then table1.IndexName :='TITEL';
If Radiogroup2.ItemIndex = 1
   then table1.IndexName :='INTERPRET';
If Radiogroup2.ItemIndex = 2
   then table1.IndexName :='ART';
If Radiogroup2.ItemIndex = 3
   then table1.IndexName :='MEDIUM';
If Radiogroup2.ItemIndex = 4
   then table1.IndexName :='EPOCHE';
If Radiogroup2.ItemIndex = 5
   then table1.IndexName :='ERWERB';
If Radiogroup2.ItemIndex = 6
   then table1.IndexName :='AUTOR';
end;

procedure TForm1.RadioGroup3Click(Sender: TObject);
begin
If Radiogroup3.ItemIndex=0
then
  begin table1.Filter:='';
        table1.filtered:=false;
end;

If Radiogroup3.ItemIndex=1
then
  begin table1.Filter:= 'MEDIUM='+quotedstr('CD');
        table1.filtered:=true;
end;

If Radiogroup3.ItemIndex=2
then
  begin table1.Filter:= 'EPOCHE='+quotedstr('20.Jahrh');
        table1.filtered:=true;
end;

If Radiogroup3.ItemIndex=3
then
  begin table1.Filter:= 'INTERPRET='+quotedstr('Alexandra');
        table1.filtered:=true;
end;

If Radiogroup3.ItemIndex=4
then
  begin table1.Filter:='ART='+quotedstr('Oper');
        table1.filtered:=true;
end;
end;



procedure TForm1.Edit1Change(Sender: TObject);
begin
//if not (radiogroup2.itemindex=0) then radiogroup2.itemindex:=0;
table1.SetKey;
table1INTERPRET.value:=Edit1.Text;
table1.GotoNearest;
end;

end.


Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


Xion - So 09.05.10 10:57

user profile iconH0mer1234 hat folgendes geschrieben Zum zitierten Posting springen:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
procedure TForm1.Edit1Change(Sender: TObject);
begin
table1.SetKey;
table1INTERPRET.value:=Edit1.Text;
table1.GotoNearest;
end;


hmm, die Befehle kenn ich garnicht. Nehm doch ein Query...oder die Filter-Option des Tables...oder Table.Locate

Moderiert von user profile iconNarses: Delphi-Tags hinzugefügt


H0mer1234 - Fr 14.05.10 15:40

JUHU
heute letzte Informatik Stunde in meinem Leben gehabt
NIE MEHR DELPHHHHIII :D:D:D:D:D


H0mer1234 - Sa 22.05.10 19:51

Für das Programm, das kein Mensch braucht auch noch ne 2 bekommen ^^


acnut - Sa 22.05.10 22:26

user profile iconH0mer1234 hat folgendes geschrieben Zum zitierten Posting springen:
Für das Programm, das kein Mensch braucht auch noch ne 2 bekommen ^^



solch ein spaß werd ich auch nächstes jahr haben(matura011):)