Entwickler-Ecke

Datenbanken - Datensatz wird beim ersten Select gefunden - dann nicht mehr


NOS1971 - Do 07.08.14 16:47
Titel: Datensatz wird beim ersten Select gefunden - dann nicht mehr
Hallo zusammen,

ich habe ein problem was nur bei dieser einen art datensatz auftritt und ich bin total ratlos ....

ich schreibe einen datensatz mit einer URL in meine db ... danach lese ich diesen aus und analysiere die URL ... hiernach will ich die daten in dem datensatz speichern .... das funktioniert bai allen datensätzen bis auf diese url bzw dies art von download buttons


HTML-Dokument
1:
http://seoboxx.com/de/produkte/joomla-extensions/double-click-social-buttons-zoo-element?task=callelement&format=raw&item_id=27&element=c33b70f1-7667-4fe6-8a49-b5b42ed204aa&method=download&args[0]=a74d081fa54be97dd2b9cea89e7864e8                    


Das hier ist das SQL Statement was auch in SQL Admin funktioniert:


SQL-Anweisung
1:
SELECT * FROM AnalyseResultURLTable WHERE URL = "http://seoboxx.com/de/produkte/joomla-extensions/double-click-social-buttons-zoo-element?task=callelement&format=raw&item_id=27&element=c33b70f1-7667-4fe6-8a49-b5b42ed204aa&method=download&args[0]=a74d081fa54be97dd2b9cea89e7864e8";                    


Hier nun mein Auszug aus DebugView


HTML-Dokument
1:
2:
3:
4:
Got item from DB - Thread: 0 -  - http://seoboxx.com/de/produkte/joomla-extensions/double-click-social-buttons-zoo-element?task=callelement&format=raw&item_id=27&element=c33b70f1-7667-4fe6-8a49-b5b42ed204aa&method=download&args[0]=a74d081fa54be97dd2b9cea89e7864e8  
HTTP HEAD - Thread: 0 -  - http://seoboxx.com/de/produkte/joomla-extensions/double-click-social-buttons-zoo-element?task=callelement&format=raw&item_id=27&element=c33b70f1-7667-4fe6-8a49-b5b42ed204aa&method=download&args[0]=a74d081fa54be97dd2b9cea89e7864e8  
WRITE DB ENTRY SQL - Thread: 0 - |SELECT * FROM AnalyseResultURLTable WHERE URL = "http://seoboxx.com/de/produkte/joomla-extensions/double-click-social-buttons-zoo-element?task=callelement&format=raw&item_id=27&element=c33b70f1-7667-4fe6-8a49-b5b42ed204aa&method=download&args[0]=a74d081fa54be97dd2b9cea89e7864e8";|  
COULD NOT FIND DB ENTRY - Thread: 0 - application/zip - http://seoboxx.com/de/produkte/joomla-extensions/double-click-social-buttons-zoo-element?task=callelement&format=raw&item_id=27&element=c33b70f1-7667-4fe6-8a49-b5b42ed204aa&method=download&args[0]=a74d081fa54be97dd2b9cea89e7864e8


NOS1971 - Fr 08.08.14 12:53

Ich dachte erst ich habe es im Griff aber es funzt einfach nicht ... stimmt vielleich tetwas an der Syntax der SQL Abfrage nicht ? Wobei ich nicht wirklich einen Fehler sehe.


mandras - Fr 08.08.14 13:20

Kann es an den verwendeten Kodierungen liegen?
Das "&" des Downloadlinks auf der Website wird als & kodiert.


NOS1971 - Fr 08.08.14 13:27

also wenn ich mit SQL Admin in die DB schaue ist alles da ... also auch kein & ... was mich wundert ist das ich den datensatz in die db schreibe und er ist drin ... das ich den datensatz auslese aber nach status und er ist da ... aber direkt mit der abfrage der URL die ich am anfang aus der DB auslese finde ich ihn nicht mehr ... ich komme da nicht hinter


Muck - Fr 08.08.14 14:17

Hallo,

also ich tippe auf die Symbole im String.

Hier insbesondere ":" vom http.

Vielleicht hats mit Property ParamCheck zu tun, einfach mal auf false setzen.
Hatte es in der Vergangenheit einmal, dass ein query mit Symbols im String erst dann funktionierte wenn sie im ReadOnly mode ausgefuhert wurde.

Take care

Markus


NOS1971 - Fr 08.08.14 14:31

Hi Markus,
am http:// kann es nicht liegen ... das funzt bei ca. 700 anderen urls dieser domain auch problemlos ... ich finde es muss irgendwo hier liegen


HTML-Dokument
1:
?task=callelement&format=raw&item_id=27&element=c33b70f1-7667-4fe6-8a49-b5b42ed204aa&method=download&args[0]=a74d081fa54be97dd2b9cea89e7864e8                    


wo setzte ich bei firedac das paramscheck ?

hier auch mal ein auszug der abfrage:


Delphi-Quelltext
1:
2:
   URLAnalyserQuery.Open('SELECT * FROM AnalyseResultURLTable WHERE URL = "' + TempHREFString + '";');
   if URLAnalyserQuery.IsEmpty then


in TempHREFString steht die URL


Muck - Fr 08.08.14 14:51

okay,

kann sein, dass Property ParamCheck nut bei ADO vorhanden ist, womit ich hier taeglich kaempfe.
Habe den String mal eben in eine Oracle Tabelle geschrieben und erfolgreich mit ADO wieder ausgelesen.
Einziger Unterschied, ich benutze immer die Funktion QuotedStr() oder AnsiQuotedStr() um einen String in eine SQL Anweisung einzufuegen.

also vielleicht hilft:

Delphi-Quelltext
1:
2:
URLAnalyserQuery.Open('SELECT * FROM AnalyseResultURLTable WHERE URL = ' + QuotedStr(TempHREFString) + ';');
if URLAnalyserQuery.IsEmpty then


Schoenen Gruss nach Selm btw, habe in Davensberg (um die Ecke) gewohnt bevor ich vor 10 Jahren in die Staaten gezogen bin.


NOS1971 - Fr 08.08.14 15:33

Das ParamCheck gibt es in der Tat nur bei ADO :-)

Ich habe mal sicherheitshalber mit QuotedStr gecheckt aber das ist es auch nicht ... Davensberg ist ja wirklich um die Ecke ... das kenne ich ... wobei ich für eine Firma in den Staaten gearbeitet habe ... für Pinnacle Systems bis 2005 ... was hat dich in die Staaten verschlagen und wie lebt es sich dort ?

hier noch ein Link bei dem es probleme gibt


HTML-Dokument
1:
http://seaworld.com.au/media/Images/VRTP Images/SeaWorld-New/Attractions/Thumbs/Polar_Bear.ashx?h=67&la=en&mw=80&w=80                    


Grüßle,
Andreas


NOS1971 - Fr 08.08.14 16:08

user profile iconNOS1971 hat folgendes geschrieben Zum zitierten Posting springen:
Das ParamCheck gibt es in der Tat nur bei ADO :-)

Ich habe mal sicherheitshalber mit QuotedStr gecheckt aber das ist es auch nicht ... Davensberg ist ja wirklich um die Ecke ... das kenne ich ... wobei ich für eine Firma in den Staaten gearbeitet habe ... für Pinnacle Systems bis 2005 ... was hat dich in die Staaten verschlagen und wie lebt es sich dort ?

hier noch ein Link bei dem es probleme gibt


HTML-Dokument
1:
http://seaworld.com.au/media/Images/VRTP Images/SeaWorld-New/Attractions/Thumbs/Polar_Bear.ashx?h=67&la=en&mw=80&w=80                    


und noch einer ... sieht fast so aus als ob die eckigen klammern ein problem sein könnten ... & und ? sind es auf jeden fall nicht


HTML-Dokument
1:
http://www.schornsteinwelt.de/components/com_virtuemart/fetchscript.php?gzip=1&subdir[0]=/themes/default&file[0]=theme.css&subdir[1]=/js/mootools&file[1]=mooPrompt.css                    


Grüßle,
Andreas


Muck - Fr 08.08.14 17:03

Auszug aus der FireDac Hilfe, sieht so aus als ob es Parameter wie ParamCheck for ADO auch fuer FireDac gibt
(siehe MacroExpand EscapeExand und ParamExpand):

http://docs.embarcadero.com/products/rad_studio/firedac/frames.html?frmname=topic&frmfile=Preprocessing_Command_Text.html

Zitat:

Special character processing
To transmit special characters - ‘!’, ‘&’, ‘:’, '?', ‘{‘ or ‘}’ to the DBMS, you will need:
• to double special character. For example, ‘{{‘.
• on MySQL precede this character by ‘\’ character. For example, ‘\”’.
• for '!', '&', '{', '} set ResourceOptions.MacroCreate, MacroExpand and EscapeExpand to False.
• for ':', '?' set ResourceOptions.ParamCreate, ParamExpand to False.
Otherwise '!', '&', '{', '}' characters will be treated as a macro command. And ':', '?' as a parameter marker, excluding the following cases:
• Oracle PL/SQL assignment operator is detected by FireDAC and will not be treated as parameter marker.
• Firebird EXECUTE BLOCK parameters inside of BEGIN … END are detected by FireDAC and will not be treated as parameter marker.
• TSQL label is detected by FireDAC and will not be treated as parameter marker.


Habe selbst nie mit FireDac gearbeitet, vielleicht kann jemand mit mehr Erfahrung helfen.

Wie ich in die Staaten gelangt bin?
Meine Frau is Texanerin, sie hat 4 Jahre versucht sich an den Deutschen Sommer zu gewoehnen, fail, also umgezogen: Deutscher Sommer ist wie Winter in Texas.
Im Winter fallen hier die Temperaturen auf scheussliche 15 Grad plus, das ist wenn der gemeine Texaner den Wintermantel rausholt und langsamer faehrt, koennt ja mal glatt sein.


NOS1971 - Fr 08.08.14 18:00

Supergeil,

vielen lieben Dank ... ich war schon nah dran ... hatte die seite grad offen und begonnen zu lesen als ich deine nachricht sah .... super ..... vielen lieben dank

naja ... eine texanerin in diesem wetter hier ... das geht garnicht ... da ist texas sicher die bessere wahl .... also ich meine besser als ascheberg wird es sicher sein ... :)