Avatar billede bluestrike Nybegynder
26. november 2003 - 14:17 Der er 11 kommentarer

Manglende Query resultater ved SQL indvolverende mere end 1 tabel

Jeg har i følgende spørgsmål opstillet et problem...

http://www.eksperten.dk/spm/432102

Nu er jeg så kommet et skridt nærmere problemet kerne!Problemet er at såsnart mit databasekald involvere mere end 1 tabel så returneres der ingen data!
Ser mit sql f.eks ud som følger:

SELECT FAKTJOUR.FAKTURA_NR, KUNDE.NAVN, FAKTJOUR.DATO, FAKTJOUR.NETTO_BEL FROM FAKTJOUR FAKTJOUR, KUNDE KUNDE WHERE FAKTJOUR.KUNDE_NR = KUNDE.NR AND FAKTJOUR.SAG_NR=1995

returneres der ingen data. Men ændre jeg det til:

SELECT FAKTJOUR.FAKTURA_NR, FAKTJOUR.DATO, FAKTJOUR.NETTO_BEL FROM FAKTJOUR FAKTJOUR WHERE FAKTJOUR.SAG_NR=1995

returneres de data der er til sag 643 helt efter planen...
Problemet går igen i flere andre kald hvor flere tabeller indvolveres. Håber nogen har en løsning. :-/
Avatar billede krasmussen Praktikant
26. november 2003 - 18:06 #1
Du skriver ikke, hvilken DB du scripter imod. Men hvis det f.eks. er Oracle eller Informix (Og vist nok også MS) kan du ikke sætte whereclauses eller andre betingelser på, uden først at have initeret tabellen eller som minimum en record.
Rent praktisk betyder det, at du skal have min. ét felt fra kundetabellen med  i din select.
Avatar billede bak Forsker
26. november 2003 - 19:28 #2
krasmussen > har han da ikke det ? KUNDE.NAVN
men hvorfor står der KUNDE KUNDE lige før WHERE ?
Avatar billede krasmussen Praktikant
26. november 2003 - 19:40 #3
Jo det har han - jeg har vist sovet lidt i timen......, undrede mig iøvrigt også over, at der refereres til tabellerne to gange?
En anden hurtig test kunne være, at tilføje KUNDE.NR i selecten
Avatar billede bluestrike Nybegynder
01. december 2003 - 11:10 #4
Grunden til at der står KUNDE KUNDE er, at jeg har glemt at slette det i eksemplet, da jeg testede slettede jeg det. :-) Som sagt, såsnart jeg involvere kunde, eller en hvilken somhelst anden tabel, så sker der en fejl, for så får jeg langt fra alle de elementer der skulle være. :-( Men kontakter jeg kun en tabel virker mit databasekald.
Avatar billede krasmussen Praktikant
01. december 2003 - 11:19 #5
Har du kontrolleret, at der rent faktisk findes data ommkring sag 1995 på kunden i kundetabellen ?. Du kan evt. prøve med en JOIN i stedet for WHERE, men resultatet brude være det samme......
Avatar billede bluestrike Nybegynder
01. december 2003 - 12:14 #6
Det er jeg fuldstændig sikker på at der gør, for nøjagtig det samme databasekald fungere upåklageligt på andre 10 maskiner i virksomheden. :-(
Avatar billede krasmussen Praktikant
01. december 2003 - 13:42 #7
Hmmm... Har brugeren læserettigheder til tabellen?, Prøv at se på ODBC-indstillingerne - står MaxScanRows f.eks. til 0 - Er timeout'en for lav ? Bufferen nulstillet?. Det er mine umiddelbare ideer.
Avatar billede bluestrike Nybegynder
01. december 2003 - 13:52 #8
Damn.. jeg har kigget alle ODBC-indstillingerne i Datakilder igennem, og de er de samme som på en af de maskiner hvor det virker.. :-/ Jeg ved der ikke er skrive eller læse begrænsninger til den database jeg prøver at kontakte. MaxScanRows?? Timeouten er den samme som på de andre maskiner...
Avatar billede krasmussen Praktikant
01. december 2003 - 13:56 #9
MaxScanRows kan du finder under avanceret for driveren. Jeg tror IKKE at fejlen skal findes i scriptet
Avatar billede bluestrike Nybegynder
01. december 2003 - 15:23 #10
MaxScanROws står til 8.... PageTimeout 5... Buffersize 2048.
Avatar billede krasmussen Praktikant
01. december 2003 - 20:07 #11
Så er indstillingerne helt ok (desværre...), men du kan selvfølge sammenligne med en af de maskiner hvor det virker.
Har ikke lige noget guld i ærmet - tænker lidt, så du hører fra mig hvis jeg får en ide!
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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