![]() |
Datenbank: Paradoxx • Version: ? • Zugriff über: Datasource
Fehler bei Index
Hi kann mir jemand sagen wo hier der Fehler liegt bekomme einen index fehler wenn ich im Editfeld versuche einen Buchstaben einzu geben
Delphi-Quellcode:
procedure TForm1.Tabelleerst;
begin Table1.close; getdir(0,Pfad); With Table1 Do //Tabelle erzeugen begin DatabaseName:= (ExtractFilePath(ParamStr(0)) + 'Adress\'); //Pfad zur Tabelle Form2.Table1.DatabaseName:= (ExtractFilePath(ParamStr(0)) + 'Adress\'); TableName:= 'Adress.DB'; Form2.Table1.TableName:= 'Adress.DB'; TableType:= ttParadox; end; if not FileExists(ExtractFilePath(ParamStr(0)) + 'Adress\Adress.DB') then begin With Table1 Do begin with FieldDefs Do //Datenfelder erzeugen begin Clear; Add('Nr.',ftAutoInc,0,True); Add('SName',ftString,30,True); Add('SStraße',ftString,30,False); Add('SOrt',ftString,30,False); end; with IndexDefs do //Index Schlüssel erzeugen begin Clear; Add('Nr','Nr.',[ixPrimary, ixUnique]); // Primär Index end; CreateTable; end; end; Table1.Active:= True; //Tabelle1 auf Form1 aktivieren Form2.Table1.Active:= True; //Tabelle1 auf Form2 aktivieren end; procedure TForm1.Edit1Change(Sender: TObject); begin With Table1 do begin IndexName:= 'Nr.'; SetKey; FieldByName('SName').AsString:= Edit1.Text; GotoNearest; end; end; |
Re: Fehler bei Index
Lass mal im Indexnamen den Punkt weg. Könnte die BDE verwirren da der Punkt auch für andere Dinge reverviert ist.
|
Re: Fehler bei Index
dann bekomme ich auch einen fehler " feld SName ist nicht indiziert und kann nicht verändert werden
|
Re: Fehler bei Index
ok habe es falls es jemand interessiert
Delphi-Quellcode:
procedure TForm1.Tabelleerst;
begin Table1.close; getdir(0,Pfad); With Table1 Do //Tabelle erzeugen begin DatabaseName:= (ExtractFilePath(ParamStr(0)) + 'Adress\'); //Pfad zur Tabelle Form2.Table1.DatabaseName:= (ExtractFilePath(ParamStr(0)) + 'Adress\'); TableName:= 'Adress.DB'; Form2.Table1.TableName:= 'Adress.DB'; TableType:= ttParadox; end; if not FileExists(ExtractFilePath(ParamStr(0)) + 'Adress\Adress.DB') then begin With Table1 Do begin with FieldDefs Do //Datenfelder erzeugen begin Clear; Add('Nr',ftAutoInc,0,True); Add('SName',ftString,30,True); Add('SStraße',ftString,30,False); Add('SOrt',ftString,30,False); end; with IndexDefs do //Index Schlüssel erzeugen begin Clear; Add('Nr','Nr',[ixPrimary, ixUnique]); // Primär Index Add('SName','SName',[]); end; CreateTable; end; end; Table1.Active:= True; //Tabelle1 auf Form1 aktivieren Form2.Table1.Active:= True; //Tabelle1 auf Form2 aktivieren end; procedure TForm1.Edit1Change(Sender: TObject); begin With Table1 do begin IndexName:= 'SName'; SetKey; FieldByName('SName').AsString:= Edit1.Text; GotoNearest; end; end; |
Re: Fehler bei Index
Hallo,
einfacher ist es, das ganze über eine Query zu machen. z.B.
SQL-Code:
Create Index idx_Address_sName on Address(sName)
Heiko |
Re: Fehler bei Index
mit der Query kenn ich mich net so aus wie und was mus da eingestelt werden.
Brauch ich dann auch ein DBEdit oder funzt das auch mit einem Edit? Kann ich dan im selben Edit auch noch nach anderen Feldern suchen?? fragen über Fragen |
Re: Fehler bei Index
Hallo
Delphi-Quellcode:
Am besten mal im DB Tutorial nachsehen
var
sFoundName: String with Query do begin SQL.Clear; SQL.Add('Select * From Table'); SQL.Add('Where SName=:SName'); ParamByName('SName').AsString:= Edit_Search.Text; /// normaler TEdit Open; try if QueryIsNotEmpty then begin sFoundName:= FieldByName('SName').AsString; // bei mehreren Suchergebnissen folgendes while not EOF do begin sFoundName:= FieldByName('SName').AsString; // mache was mit sFoundName Next; end; end; finally Close; end; end; Heiko |
Re: Fehler bei Index
Kann es sein das das hier nicht stimmt
Delphi-Quellcode:
if QueryIsNotEmpty then
|
Re: Fehler bei Index
Hallo,
eigentlich nicht. Falls er das nicht findet
Delphi-Quellcode:
Sinn ist auf jeden Fall, nachdem Open festzustellen,
if not IsEmpty then
ob überhaupt was gefunden wurde. Du kannst das auch mit
Delphi-Quellcode:
machen.
if not Query.EOF
Das IsEmpty hat Borland irgendwann mal eingeführt (Delphi 5?) Heiko |
Re: Fehler bei Index
Also bei mir tut sich garnichts was mach ich falsch
Delphi-Quellcode:
procedure TForm1.Edit2Change(Sender: TObject);
var sFoundName: String; begin with Query1 do begin SQL.Clear; SQL.Add('Select * From Artikel.db'); SQL.Add('Where Artikel=:Artikel'); ParamByName('Artikel').AsString:= Edit2.Text; /// normaler TEdit Open; try if not Query1.EOF then begin sFoundName:= FieldByName('Artikel').AsString; showmessage(sFoundName); // bei mehreren Suchergebnissen folgendes while not EOF do begin sFoundName:= FieldByName('Artikel').AsString; // mache was mit sFoundName Next; end; end; finally Close; end; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz