Autor Beitrag
pmw
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65



BeitragVerfasst: Mo 30.12.02 13:56 
Hallo!

Ich möchte gerne alle Felder eine Datenbank nach einen bestimmten Schlüsselwort durch suchen. Leider bekomme ich immer com Compiler die Fehlermeldung, dass VarArrayOf ein undefinierter Wert sei. Wenn ich VarArrayOf einfach weglassen und nur "suchen.Text" hin schreibe, dann gibt es einen Laufzeitfehler.

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure TForm1.Button1Click(Sender: TObject);
var
y,x: integer;
begin

   if Table1.Locate('Sänger;Titel;CD;Track;Bemerkung', VarArrayOf([suchen.Text]), [loCaseInsensitive,loPartialKey]) then
      ShowMessage('Datensatz gefunden.');

end;


Viele Grüße
Martin Winandy
bis11
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1247
Erhaltene Danke: 2

Apple Mac OSX 10.11

BeitragVerfasst: Mo 30.12.02 14:22 
Hi,

was für einen Typ Datenbank benutzt Du denn ?
pmw Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65



BeitragVerfasst: Mo 30.12.02 15:10 
Paradox 7
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 30.12.02 15:21 
Hi!

Du hast höchstwahrscheinlich einfach vergessen, die Unit Variants in der Uses-Klausel zu deklarieren. In ihr ist die Funktion VarArrayOf implementiert. :wink:

Cu,
Udontknow
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 30.12.02 15:24 
Wo ich mir gerade den Code anschaue:

Du musst für jedes Feld ein entsprechendes Element angeben, also:

ausblenden Quelltext
1:
VarArrayOf([SaengerText,TitelText,CDText,TrackText,BemerkungText])					


Cu,
Udontknow
pmw Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65



BeitragVerfasst: Mo 30.12.02 16:01 
Hallo!

Der Compiler meldet aber imm noch die selbe Fehlermeldung:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
[Fehler] Unit1.pas(50): Undefinierter Bezeichner: 'VarArrayOf'
[Fehler] Unit1.pas(50): Ordinaltyp erforderlich
[Fehler] Unit1.pas(50): Inkompatible Typen: 'Integer' und 'TCaption'
[Fehler] Unit1.pas(50): Inkompatible Typen: 'Integer' und 'TCaption'
[Fehler] Unit1.pas(50): Inkompatible Typen: 'Integer' und 'TCaption'
[Fehler] Unit1.pas(50): Inkompatible Typen: 'Integer' und 'TCaption'
[Fehler] Unit1.pas(50): Inkompatible Typen: 'Integer' und 'TCaption'
[Fataler Fehler] Archiver.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden


ausblenden Quelltext
1:
2:
if Table1.Locate('Sänger;Titel;CD;Track;Bemerkung', VarArrayOf([suchen.Text,suchen.Text,suchen.Text,suchen.Text,suchen.Text]), [loCaseInsensitive,loPartialKey]) then
      ShowMessage('Datensatz gefunden.');
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 30.12.02 16:18 
Die Unit "Variants" ist in der Uses-Klausel?

Wenn nicht sicher, bitte einmal die ganze Unit posten...

Cu,
Udontknow
pmw Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 65



BeitragVerfasst: Mo 30.12.02 16:24 
Zitat:
Die Unit "Variants" ist in der Uses-Klausel?

Daran lag's!

Locate macht immer nur eine UND-Suche. Ich benötige aber eine ODER-Suche. Was muss ich ändern?
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mo 30.12.02 16:29 
Mit Locate gehts nicht. An deiner Stelle würde ich eine Query nehmen und ein entsprechendes SQL-Statement zusammenbasteln.

Cu,
Udontknow