AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vista Suche in Delphi nutzen

Ein Thema von stOrM · begonnen am 3. Feb 2009 · letzter Beitrag vom 17. Feb 2009
Antwort Antwort
Seite 2 von 3     12 3      
nahpets
(Gast)

n/a Beiträge
 
#11

Re: Vista Suche in Delphi nutzen

  Alt 12. Feb 2009, 13:20
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)
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#12

Re: Vista Suche in Delphi nutzen

  Alt 12. Feb 2009, 13:38
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?
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#13

Re: Vista Suche in Delphi nutzen

  Alt 12. Feb 2009, 13:52
Hallo,

nachdem, was ich bisher mitbekommen habe, baut der QueryHelper eine Abfrage / ein SQL für die als Parameter übergebene Zeichenfolge zusammen. Bin mir annähern 100% sicher, dass bei der Benutzung des QueryHelpers kein SQL nötig ist.

Ohne den QueryHelper wäre mal einen Versuch wert.

Weise Deiner Query mal bitte nur dasdaSELECT System.ItemName FROM SystemIndex zu.
Wenn das nicht geht, muss der Fehler irgendwo anders sein.
Hast Du da mit dem Debugger irgend eine Chance weiter zu kommen?

Breakpoint auf qry.Active := True; und dort schon reindebuggen (wenn das geht).
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#14

Re: Vista Suche in Delphi nutzen

  Alt 12. Feb 2009, 13:56
Zitat von nahpets:
Hallo,

nachdem, was ich bisher mitbekommen habe, baut der QueryHelper eine Abfrage / ein SQL für die als Parameter übergebene Zeichenfolge zusammen. Bin mir annähern 100% sicher, dass bei der Benutzung des QueryHelpers kein SQL nötig ist.

Ohne den QueryHelper wäre mal einen Versuch wert.

Weise Deiner Query mal bitte nur dasdaSELECT System.ItemName FROM SystemIndex zu.
Wenn das nicht geht, muss der Fehler irgendwo anders sein.
Hast Du da mit dem Debugger irgend eine Chance weiter zu kommen?

Breakpoint auf qry.Active := True; und dort schon reindebuggen (wenn das geht).
Ok wart ma ich teste es eben!
Das wird immer unheimlicher, nu kommt also beim Klick auf den Search Button erst Ne Exception Addresse 00000000 danach unbekannter Fehler wie gehabt mit Ausführung des Querys debugging kein brauchbares Ergebnis bisher...

In den SDK Beispielen ist das ganze auch sehr Mysteriös aufgebaut aber im Prinzip so wie ich das versuche hier!
Nur mit dem Unterschied:

// use ATL OLEDB classes to connect to the database and get the results

CDataSource cDataSource;

hr = cDataSource.OpenFromInitializationString(L"provide r=Search.CollatorDSO.1;EXTENDED PROPERTIES=\"Application=Windows\"");
if (SUCCEEDED(hr))
{
CSession cSession;

Usw.

Seltsam ist auch was die Exception mit 0000000 betrifft, die wird ausgelöst bei der Zuweisung des SQlStrings sowie bei Active = true, wenn beides auskommentiert wird keine Exceptions...

Ado Prob?

Zusatzinfo hierzu:
Ich hab jetzt mal dem ConnectionDialog den ConnectionString im OI selbst übergeben Verbindung getestet rennt.
Jetzt hab ich den AdoQeury mit Dem ConnectionDialog verbunden und dein Query unter SQL eingegeben, beim setzen auf Active im OI knallts!

Da iss doch irgendwas im Busch?
Ich denk mal das der Code dann wohl richtig war bisher?!
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#15

Re: Vista Suche in Delphi nutzen

  Alt 12. Feb 2009, 14:18
Hallo,

ich kapier' momentan garnix mehr.

Hast Du die qry mit 'ner TDataSource und irgendwelchen Datenbankkomponeten verbunden? Mach' das mal weg. Eventuell kann ja nur irgendwer/irgendwas nicht angezeigt werden?

Moment, Deine letzte Ergänzung:

pSQL ist PWideChar. Von welchem Type ist qry.SQL.Text, beharken die sich eventuell?
Deine Beschreibung klingt so ein bisserl wie: Die Zuweisung des SQL's funktioniert nicht, wird aber irgendwie übergangen und anschließend führen wir das nichtzugewiesenen SQL aus?

Was ist mitqry.sql.text := 'SELECT System.ItemName FROM SystemIndex';
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#16

Re: Vista Suche in Delphi nutzen

  Alt 12. Feb 2009, 14:25
Zitat von nahpets:
Hallo,

ich kapier' momentan garnix mehr.

Hast Du die qry mit 'ner TDataSource und irgendwelchen Datenbankkomponeten verbunden? Mach' das mal weg. Eventuell kann ja nur irgendwer/irgendwas nicht angezeigt werden?

Moment, Deine letzte Ergänzung:

pSQL ist PWideChar. Von welchem Type ist qry.SQL.Text, beharken die sich eventuell?
Deine Beschreibung klingt so ein bisserl wie: Die Zuweisung des SQL's funktioniert nicht, wird aber irgendwie übergangen und anschließend führen wir das nichtzugewiesenen SQL aus?

Was ist mitqry.sql.text := 'SELECT System.ItemName FROM SystemIndex';
Kuck ma eins nach oben letzte Bemerkung!

Jetzt mal nur die AdoConnection im OI mit den Sachen gefüttert, das Query damit Verbunden SQL eingegeben und Active gesetzt wirft eine OleException ohne weitere Details: 80040E14
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#17

Re: Vista Suche in Delphi nutzen

  Alt 12. Feb 2009, 14:45
So ein Stoffwechselendprodukt

Probier es mal mit ADODataSet und CommandText.
Aber da scheint ja doch Irgendwas im "Inneren" schief zu laufen.

Für meinen Teil bin ich da jetzt mit dem Latein am Ende.

Frag' mal bitte Google nach 80040E14. Da kommt so viel, dass ich da auf die Schnelle für mich keine Chance sehe, das "Richtige" Ergebnis zu finden.
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#18

Re: Vista Suche in Delphi nutzen

  Alt 12. Feb 2009, 14:53
Zitat von nahpets:
So ein Stoffwechselendprodukt

Probier es mal mit ADODataSet und CommandText.
Aber da scheint ja doch Irgendwas im "Inneren" schief zu laufen.

Für meinen Teil bin ich da jetzt mit dem Latein am Ende.

Frag' mal bitte Google nach 80040E14. Da kommt so viel, dass ich da auf die Schnelle für mich keine Chance sehe, das "Richtige" Ergebnis zu finden.
Hmm ich bin grad mal am prüfen obs ggf an meiner MDac Version liegen könnte? Obwohl iss ja 2.8
Ja das sagste was bei Google wirste totgeschmiessen zu der Exception...

Ich check das nochmal mit Adodataset und dann bin ich auch am ende ich weiss nimmer weiter nu...

Trotzdem erstmal schönen Dank für die Mühe die ich gemacht hab

Du hast übrigends völlig recht gehabt, der QueryHelper baut den SQL Query selber auf habs gerade mal durchgespielt:

Bsp.1:
Project1.exe

Daraus baut der QueryHelper folgenden Syntax:
SELECT "System.ItemUrl", "System.FileName" FROM "SystemIndex" WHERE ("System.FileName" LIKE 'Project1.exe%OR CONTAINS(*,'"Project1*"',1031) AND CONTAINS(*,'"exe*"',1031)) Bsp.2:
*.exe

Wird zu:
SELECT "System.ItemUrl", "System.FileExtension" FROM "SystemIndex" WHERE ("System.FileExtension" LIKE '.exe%OR WorkId IS NULL)
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#19

Re: Vista Suche in Delphi nutzen

  Alt 16. Feb 2009, 10:41
Hallo,

nach den letzten Erkenntnissen scheint der Fehler in der ADODB.Pas aufzutreten und zwar in der Zeile
Delphi-Quellcode:
/* Funktion RefreshFromOLEDB */
OLEDBCommand.QueryInterface(ICommandWithParameters, OLEDBParameters);
Diese Zeile wird nur durchlaufen, wenn Command.CommandType = cmdText andernfalls wird RefreshFromADO aufgerufen.
Allem Anschein nach gibt es Probleme bei der Prüfung von Parametern (die in unserem Fall allerdings nicht vorhanden sind).

Es wäre mal einen Versuch wert, ParamCheck der Query auf false zu setzen.
  Mit Zitat antworten Zitat
Benutzerbild von stOrM
stOrM

Registriert seit: 7. Jun 2003
Ort: Mülheim an der Ruhr
434 Beiträge
 
Delphi 10.3 Rio
 
#20

Re: Vista Suche in Delphi nutzen

  Alt 16. Feb 2009, 14:05
Zitat von nahpets:
Hallo,

nach den letzten Erkenntnissen scheint der Fehler in der ADODB.Pas aufzutreten und zwar in der Zeile
Delphi-Quellcode:
/* Funktion RefreshFromOLEDB */
OLEDBCommand.QueryInterface(ICommandWithParameters, OLEDBParameters);
Diese Zeile wird nur durchlaufen, wenn Command.CommandType = cmdText andernfalls wird RefreshFromADO aufgerufen.
Allem Anschein nach gibt es Probleme bei der Prüfung von Parametern (die in unserem Fall allerdings nicht vorhanden sind).

Es wäre mal einen Versuch wert, ParamCheck der Query auf false zu setzen.
Hey Grüß Dich!
ParamCheck steht auf falsch Ergebis leider wie immer es kracht!

Grüß
Marc

Ps. Gibt es irgendwo von mir auch aus Trial Ado Komponenten sprich AdoQuery die nicht auf die AdoDB von CG aufsetzen, dann könnte ich es mal testen ob das Problem dort auch auftritt? Allerdings müßen Die Komponenten dann ggf. Kompatible zu D2009 sein.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 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