Avatar billede jonas_html.dk Nybegynder
04. februar 2001 - 17:40 Der er 7 kommentarer og
1 løsning

Problemer med at trække data ud fra MS SQL 7

Hej med jer,

Jeg har endelig fået mig taget sammen til at forlade
Access-databaserne til fordel for MS SQL 7 - det er naturligvis
en stor forbedring - men nu har jeg fået det første problem:

Jeg har en tabel, som jeg har importeret fra Access 2000. I denne
tabel er nogle af kolonnerne sat til \'int\' og \'bit\'. Jeg kan via
Enterprise Manager gå ind og se at der f.eks. i et felt står
tallet 1 - MEN når jeg i min ASP kode forsøger at hente denne
værdi på normal vis: Response.Write Record(\"kolonnenavn\") - så
sker der intet - jeg kan simpelthen ikke få nogen værdi frem.
Hvis jeg forsøger mig med Cint(Record(\"kolonnenavn\")) giver det
altid 0. Dette sker også selvom jeg ændrer datatypen til \'int\' -
og derefter går ind via EM og skriver f.eks. 3498 i cellen -
Cint(Record(\"kolonnenavn\")) er stadig 0.

Det driver mig snart til vanvid!

For god ordens skyld bør jeg nævne at jeg sagtens kan hente
kolonner med tekst og datoer.

Jeg benytter Enterprise Manager 2000 op mod en MS SQL 7 - kan det
have noget at sige ?

Er der nogle som har et bud på hvad jeg gør galt ?

Mvh
Jonas

Avatar billede sbarnney Nybegynder
04. februar 2001 - 18:06 #1
Må jeg ikke se hele koden ?

Stig
Avatar billede jonas_html.dk Nybegynder
04. februar 2001 - 18:28 #2
Jeg har lavet følgende lille kodestump som illustruerer problemet:

<%
strSql = \"Select * From community_profiles where ID = \'1\'\"
    Set ComRec = Rs.Execute(strSql)

    Response.Write \"<p>\" & ComRec(\"PersonName\")
    Response.Write \"<p>\" & ComRec(\"Occ1\")
    Response.Write \"<p>\" & ComRec(\"Occ2\")

    If ComRec(\"Occ1\") = 0 Then
        Response.Write \"<p>Occ1 = Nej\"
    Else
        Response.Write \"<p>Occ1 = Ja\"
    End If   

    If ComRec(\"Occ2\") = 0 Then
        Response.Write \"<p>Occ2 = Nej\"
    Else
        Response.Write \"<p>Occ2 = Ja\"
    End If   
   

    Rs.Close
    Set Rs = Nothing
%>

\' PersonName er et tekstfelt
\' Occ1 er et tal
\' Occ2 er et tal


Når jeg kører ovenstående kode får jeg følgende:

<p>Jonas Astrup
<p>1
<p>

<p>Occ1 = Ja
<p>Occ1 = Nej

MEN: både Occ1 og Occ2 har værdien 1

Forskellen på de to felter er at jeg gennem Enterprise Manager har ændret datatypen for Occ2 frem og tilbage et par gange - det burde man da kunne gøre - ikke?

Mvh
Jonas
Avatar billede jonas_html.dk Nybegynder
04. februar 2001 - 18:30 #3
Rettelse:

Jeg får naturligvis:

<p>Occ1 = Ja
<p>Occ2 = Nej
Avatar billede sbarnney Nybegynder
04. februar 2001 - 18:42 #4
Hej Jonas - Fejlen ligger for mig at se, i din database. Occ2 har ingen værdi. Hvis din database ikke er ret stor, kan du prøve at slette den og lave en ny.

Stig
Avatar billede jonas_html.dk Nybegynder
04. februar 2001 - 18:51 #5
Jeg tror du har ret i at fejlen ligger i databasen - men jeg ville jo frygtelig gerne undgå at det sker igen - har du et bud på hvad der kan være skyld i at en kolonne pludselig opfører sig på den måde?
Avatar billede sbarnney Nybegynder
04. februar 2001 - 19:00 #6
Selv om man normalt godt kan ændre i typerne, er det ikke noget man tilråder. Omvendt så brug kun int når det SAKL være int, ellers så brug nvchar.

Stig
Avatar billede jonas_html.dk Nybegynder
04. februar 2001 - 19:04 #7
OK - jeg skal altså være lidt mere forsigtig med at sidde ændre på forskellige ting i databasen.

Har du et par gode links til sites som behandler MS SQL 7 helt fra bunden - altså helt på begynderniveau. Gerne med gode råd som dit med at bruge nvchar istedet for int - o.s.v.

Mvh
Jonas 
Avatar billede sbarnney Nybegynder
05. februar 2001 - 11:00 #8
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