Jag gör följande i min kod. YIIPPPEEE Jag har hittat felet...... Om du hade testat:SQL frågan skiter sig..... Tomt recordset.
Anropar en funktion som skapar en SQL-sträng beroende på lite data
som eventuellt finns i registret. Finns inte datat så returneras en default-
fråga.
Defaultfrågan har jag kört i Query Analyser, den andra frågan har jag
gjort debugutskrift på, och sedan klippt ut den och klistrat in i Query
Analysern och kört den. Den fungerar också alldeles utmärkt.
Dock när jag kör frågan i VB.... set RS = CN.Execute(minFråga) så
får jag ett resultat bara på defaultfrågan. När den andra frågan körs
så får jag inget recordsetreferens tillbaka.
"Object varibale or with block variable not set" men frågan skall ju funka
den gör ju det i Query Analyser.
Nu har jag slitit mitt hår på detta, är det nån som kan förklara vad som
är felet.
Min fråga som funkar i Query Analyser men inte i VB är:
SELECT ordernummer, serienummer, ordernyckel FROM aggregat WHERE (streckkod_klar=0 or streckkod_klar IS NULL) AND (ordernyckel LIKE "MED%") GROUP BY ordernummer, serienummer, ordernyckel ORDER BY ordernummer ASC
Anledningen till att det är parenteser runt like-uttrycket är att beroende
på data i registret kan flera OR-ade LIKE-uttryck ingå i denna parentes.
Min fråga som fungerar att köra i både VB och Query Analysern är denna:
SELECT ordernummer, serienummer, ordernyckel FROM aggregat WHERE streckkod_klar=0 OR streckkod_klar IS NULL GROUP BY ordernummer, serienummer, ordernyckel ORDER BY ordernummer ASC
/peterh Sv: SQL frågan skiter sig..... Tomt recordset.
Faktum är att jag vetat om detta sedan tidigare men glömt bort det.
Så det kan gå. Men så här är det i alla fall.
I Query Analyzer kan man tydligen avgränsa strängar med både
" (dubbelfnutt) och ' (enkelfnutt) medans det i VB endast är tillåtet
att avgränsa strängdata-fälten med ' (enkelfnutt).
Ja i VB och VB, egentligen är det ju i ODBC-kopplingen som detta ligger
.
Nu vet ni och jag glömmer aldrig. (igen)
/peterhSv: SQL frågan skiter sig..... Tomt recordset.
sql = "SELECT ordernummer, serienummer, ordernyckel FROM aggregat WHERE (streckkod_klar=0 or streckkod_klar IS NULL) AND (ordernyckel LIKE """MED%""") GROUP BY ordernummer, serienummer, ordernyckel ORDER BY ordernummer ASC"
Så tror jag du hade lyckats?!
/Pelle