Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 20:50 Der er 21 kommentarer og
1 løsning

Fejl efter konvertering til MS SQL

Efter jeg har ændret min database fra ACCESS til MS SQL får jeg denne fejl flere steder på min side, hvad kan det skyldes?

Fejltype:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
The text, ntext, and image data types cannot be used in the WHERE, HAVING, or ON clause, except with the LIKE or IS NULL predicates.
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 20:54 #1
Du mener nok ikke at du vil bruge typen ntext, med 16 bit tegn - Unicode.
Du skal nok bare lave typen til text.
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 20:55 #2
Øv - sommetider går spørgsmålet hen over det blå felt ...:(
Nej, text kan heller ikke bruges. Kun char og varchar.
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 21:25 #3
ok, men jeg har ikke brugt typen ntext, men text, men du siger at det kan jeg heller ikke bruge? ... hvad kan jeg så bruge som er ligesom notat i ACCESS?
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 21:27 #4
jeg har lavet mine tabeller ved selv at kode dem, hvis du jeg skal rette et felt type, hvordan gøre jeg det uden at skulle til at slette tabellen --> oprette ny tabel --> indtaste data igen?
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 22:01 #5
kender du ALTER kommandoen i SQL?  Check lige først om max størrelse for en
char/varchar er stor nok
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 22:30 #6
jo en varchar(255) er nok til denne Tabel --> kolonne, men jeg  har andre som fx artikler so kræver meget mere...
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 22:42 #7
Men hvorfor spørger du på lighed på sådan et stort felt - altså en hel
text? Du kan vist godt bruge LIKE som er mere fornuftigt der
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 22:51 #8
det gør jeg heller ikke... ogay så det er kun ved WHERE, HAVING eller ON man ikke kan bruge til text, eller hvad, fordi hvis det er det der er galt, så er der ingen problemer
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 22:56 #9
Hvad er den SQL-sætning der går galT?
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 23:17 #10
jeg ændrede mit felt fra text til valchar, så virker det, men nu får jeg en anden fejl:

Fejltype:
Microsoft OLE DB Provider for SQL Server (0x80040E14)
Unclosed quotation mark before the character string ' ORDER BY nr'.

...i denne SQL:
strSQL =  "SELECT * FROM afstemning WHERE id2 = "" ORDER BY nr"


hvor:

id2 = int
nr = int
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 23:29 #11
lige meget, har fundet ud af det
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 23:37 #12
ok. Hvis det er fordi du tester på  where textfield=''  så kan
du vist gøre det med  where length(textfield)=0
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 23:42 #13
ok, laver du forresten ikke lige et svar?
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 23:45 #14
forresten så får jeg denne fejl:

Fejltype:
ADODB.Field (0x80020009)
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.

... hvor den ikke henviser til en bestem linie, men henviser til hele siden, har du nogen ide om hvofor dette er?
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 23:48 #15
Jah, du aflæser et tomt recordset....
Avatar billede musicchart.dk Nybegynder
22. oktober 2002 - 23:54 #16
nej, det gør jeg ikke, det er det der er problemet, jeg kan ikke finde nogen fejl...
Avatar billede erikjacobsen Ekspert
22. oktober 2002 - 23:56 #17
:)) Joh - noget i den stil i hvert fald. Kan vi se et par SQL-sætninger
fra siden?
Avatar billede musicchart.dk Nybegynder
23. oktober 2002 - 00:09 #18
Jo, det må du da :0)...

strSQL = "Select TOP 1 * From nyheder ORDER BY id DESC"
Set rs = Conn.Execute(strSQL)
           
strSQL2 = "Select * From members WHERE id = " & strBrugerid
Set rs2 = Conn.Execute(strSQL2)

strSQL = "Select TOP 1 * From artikler WHERE godkendt = 'ja' ORDER BY id DESC"
Set rs = Conn.Execute(strSQL)
           
strSQL2 = "Select * From members WHERE id = " & strBrugerid
Set rs2 = Conn.Execute(strSQL2)

strSQL = "Select TOP 5 * From nyt ORDER BY dato DESC"
Set rs = Conn.Execute(strSQL)

strSQL = "Select TOP 10 * From nyheder ORDER BY id DESC"
Set rs = Conn.Execute(strSQL)

strSQL = "Select TOP 5 * From members ORDER BY oprettet DESC"
Set rs = Conn.Execute(strSQL)
Avatar billede musicchart.dk Nybegynder
23. oktober 2002 - 00:33 #19
smutter i seng nu, har en lang dag med virksomhedsbesøg i morg.. senere i dag :o)
Avatar billede erikjacobsen Ekspert
23. oktober 2002 - 00:50 #20
Ok - men ingen af dem er slemme. Du er sikker på de alle giver
noget? SELECT TOP 1 kan jo give 0 rækker....
Avatar billede musicchart.dk Nybegynder
23. oktober 2002 - 10:44 #21
jeg er fuldstændig sikker på at de alle giver noget, men skal nok lige teste dem alle sammen for sig selv, for at være helt sikker.
Avatar billede musicchart.dk Nybegynder
31. december 2002 - 15:09 #22
--lukker--
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester