05. juli 2001 - 14:01Der er
19 kommentarer og 2 løsninger
Webbrowser og TAdoDataset
Er der nogle der har en logisk forklaring på hvorfor ADODataset fejler med \"Wrong type or argument...\" fejl, efter jeg har brugt en TWebBrowser til at printe med ( WebBrowser1.ExecWB(OLECMDID_PRINT,OLECMDEXECOPT_DONTPROMPTUSER); ) ?
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Hvad så med at kigge på din CallStack når den går ned, så kan du måske se hvad den har været igen med, også finde en løsning, den er der helt sikkert på en eller anden måde :)
Jeg siger ikke at du nødvendigvis skal pille ved source koden, men der kunne være en bug, det kunne måske også gi\' dig en ide om hvordan du laver en \"work around\". Jeg har ikke brugt ADO så jeg har ikke løsningen, kun \"løsnings metoder\", hvad jeg har hørt, løber man nemlig hurtigt ind i de sædvanlige MS versions problemer, så jeg er meget glad for IinterBase 6 OpenSource også fordi den er skide godt integreret med delphi
Hvis du ikke bruger nogle \"non standart\" comp. er du velkommen til at maile din kode ( uden exe fil ) til mig, så skal jeg se hvad jeg kan finde ud af.
Jeg kan desværre ikke sende dig noget kode fordi dette er en produkt, som jeg arbejder på for et større virksomhed.
Men efterprøvelsen er simpel nok, sæt en webbrowser ind, og hent en side ind i den, og print den ud med ExecWB, og forsøg at hente noget ud af en database ( i mit tilfælde MS SQL Server 2000 ) med de samme parameter som jeg postede tidligere.
Get Connection string er en funktion til at hente en streng som angiver connection strengen , dvs. hvilken server, adresse password brugerid, osv. samt hvilken databasedrivere der skal bruges...
Function GetConnectionString: String; Begin Result := \'Provider=<Drivernavn>(SQLOLEDB.1);Password=<password>;Persist Security Info=True;User ID=<userid>;\'; Result := Result + \'Initial Catalog=<databasenavn>;Data Source=<databaseserver>;\'; Result := Result + \'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;\'; Result := Result + \'Workstation ID=SOMETHING;Use Encryption for Data=False;Network Library=DBMSSOCN;\'; Result := Result + \'Locale Identifier=1030;Tag with column collation when possible=False\'; End;
her er min funktion til get connection string, jeg har selvfølgelig været nødt til at fjerne ting som kunne give folk adgang til vores server med denne, men det er da et eksempel, men det er godtnok til en SQL Server - jeg vil tro du kan lave et TAdoConnection object, og hvis du laver det visuelt kan du bruge en wizard til at lave connection strengen
Jeg fandt iøvrigt et par posts på nogle newsgroups fra folk der havde samme problem, dog var der kun én af dem der gav udtryk for at have fundet løsningen, uden egenligt at beskrive denne, - men han skriver dog noget med QueryInterface for IOleCommandTarget, jeg ved ikke om det siger dig noget, jeg er ikke så stiv i det... :-(
procedure TTVEditor.PrintIE; var CmdTarget : IOleCommandTarget; vaIn, vaOut: OleVariant; begin if WebBrowser1.Document <> nil then try WebBrowser1.Document.QueryInterface(IOleCommandTarget, CmdTarget); if CmdTarget <> nil then try CmdTarget.Exec( PGuid(nil), OLECMDID_PRINT, OLECMDEXECOPT_DONTPROMPTUSER, vaIn, vaOut); finally CmdTarget._Release; end; except // Nothing end; end;
her er løsningen - helt at droppe at bruge ExecWB ... Martin jeg takker dig for din hjælp dog du ikke fandt løsningen var det dog rart med lidt sparing for at finde den :-)
Interessant, jeg takker for point\'ne, forstat god arb. lyst
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.