Zitat von
nahpets:
Fehler nicht weg
Dann muss er irgendwo anders liegen und erst beim Öffnen der Abfrage "wirksam" werden (behaupte ich mal so
)
Interessant ist:
erwartet:
SELECT "System.ItemUrl", "System.FileName" FROM "SYSTEMINDEX" WHERE CONTAINS(*,'"Jawassuchenwirdennjetztnuneigentlich*"',1031)
bekommen:
SELECT "System.ItemUrl" FROM "SYSTEMINDEX" WHERE CONTAINS(*,'"Jawassuchenwirdennjetztnuneigentlich*"',1031)
Nach welchen Kriterien erfolgt denn die Auswahl der auszugebenden Spalten?
An anderer Stelle im Programm reagierst Du auf EOleException, die hat ein paar Attribute mehr, wenn die auch hier geworfen wird, ließe sich da eventuell ja noch ein bisserl mehr Information rausholen
Delphi-Quellcode:
except
on E: EOleException
do
begin
ShowMessage(E.
Message + #13 + '
ErrorCode: ' + IntToStr(ErrorCode) + #13 + '
Source: ' + Source);
end;
end;
on e :
Exception do
begin
ShowMessage(E.
Message);
end;
Nach den bisherigen "Erkenntnissen" gehe ich davon aus, dass man zur Suche kein
SQL benötigt, sondern per
pQueryHelper.GenerateSQLFromUserQuery
"alles" geschenkt bekommt.
Eventuell mal
Delphi-Quellcode:
qry.Close;
qry.SQL.Clear;
qry.sql.Add(pSQL);
qry.Open;
probieren, aber eigentlich ist das jetzt nur noch hilflose Daddelei, die ich da vorschlage, befürchte, dass ich da ohne die entsprechenden Werkzeuge keine verwertbare Hilfestellung mehr geben kann
PS: Habe kein Vista und nur Delphi 7, bin da doch ein bisserl altertümlich 8)
Hmm ich durchkämme grad das SearchSDK, was wie ich glaube auch gerade deine Antwort wiederlegt Zitat"dass man zur Suche kein
SQL benötigt"
Weil dort gibt es ein Beispiel, leider sind meine C Kenntnisse mehr als mager aber kuckst Du ein Auszug aus den Parametern des CmdApps:
Console.WriteLine("wssql <
SQL query> [<Chapter Depth>]");
Console.WriteLine("\n<
SQL query> will be sent to Windows Search and results returned.");
Console.WriteLine(" Example queries: ");
Console.WriteLine(" SELECT System.ItemName FROM SystemIndex");
Console.WriteLine(" SELECT System.ItemName FROM SystemIndex");
Console.WriteLine(" WHERE contains(*, 'dance*') AND System.Kind = 'email'");
Console.WriteLine(" GROUP ON System.Kind AGGREGATE Count() ");
Console.WriteLine(" OVER (SELECT System.Kind, System.ItemName from SystemIndex)");
Console.WriteLine("\n<Chapter Depth> ");
Console.WriteLine(" Recursion depth when expanding chapters for GROUP ON queries.");
Console.WriteLine(" 0 = stop at first chapter, 1 = stop at second chapter, etc.");
Console.WriteLine(" By default all chapters are expanded.")
Also vermute ich mal, muss man Doch das
Query übergebem? Was wohl passiert wenn ich den QueryHelper mal ganz aussen vor lasse?