Manfred Skrevet 13. desember 2007 Del Skrevet 13. desember 2007 Kjører et lite nazistyre på serveren min, med minimalt med porter åpent. Det står og kjører en Sql Server Express der, med en database. Bruker følgende connection string: "Data Source=localhost;Initial Catalog=Invoice;Persist Security Info=True;User ID=<user>;Password=<password>" Denne bør da ikke ha noe med porter på nettverkskortet å gjøre, da det ikke skal bli noe innkommende trafikk her? Feilmeldingen er i alle fall: "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)" brukeren jeg prøver å koble til med er db_owner, så det bør ikke være noe problem der. Noen forslag til neste skritt? Føler jeg står litt på bar bakke her Lenke til kommentar
kaffenils Skrevet 13. desember 2007 Del Skrevet 13. desember 2007 Problemet klienten bruker Named Pipes protokollen for å koble deg til SQL Serveren. Det første du bør gjøre er å starte SQL Server Configuration Manager og forsikre deg om at TCP/IP protokollen er enablet. Det er også greit om Shared Memory er enablet hvis du logger deg på SQL Serveren lokalt. Named Pipes og VIA kan du disable. For å tvinge klienten til å bruke TCPIP mot SQL Serveren skriver du "tcp:servernavn" og connection strengen for servername. Lenke til kommentar
Manfred Skrevet 13. desember 2007 Forfatter Del Skrevet 13. desember 2007 Når jeg bruker tcp:servernavn så fikk jeg denne morsomme feilmeldingen: "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: TCP Provider, error: 0 - No connection could be made because the target machine actively refused it.)" Kan jeg ikke bruke NamedPipes til å koble meg på lokalt? Lenke til kommentar
kaffenils Skrevet 13. desember 2007 Del Skrevet 13. desember 2007 Joda, du kan fint bruke named pipes. Nå ser jeg dessuten hva som er feil. Nå du bruker SQL Server Express må servernavn være localhost/SQLEXPRESS. "Data Source=localhost\SQLEXPRESS;Initial Catalog=Invoice;Persist Security Info=True;User ID=<user>;Password=<password>" Lenke til kommentar
Manfred Skrevet 13. desember 2007 Forfatter Del Skrevet 13. desember 2007 Takker. Der fikk jeg i alle fall koblet til Det som nå er det rare er at ingen av spørringene fungerer "SELECT * FROM Employee" gir meg bare "Invalid object name 'Employee'." Stod tidligere "SELECT * FROM dbo.Employee", men fikk strengt tatt samme feilmelding da. Lenke til kommentar
kaffenils Skrevet 13. desember 2007 Del Skrevet 13. desember 2007 Siden du kobler deg til en localhost vil det beste være å bruke Shared Memory, og det mener jeg skal være default når Data Source=localhost. Prøv å disable alle andre protokoller enn Share Memory. Du kan dessuten se hvilken protokoll som brukes av din connection ved å kjøre select * from sys.dm_exec_connections Finn din session_id og sjekk hav som står i kolonnen net_transport. Lenke til kommentar
Manfred Skrevet 13. desember 2007 Forfatter Del Skrevet 13. desember 2007 net_transport=Shared memory Lenke til kommentar
kaffenils Skrevet 13. desember 2007 Del Skrevet 13. desember 2007 Hmm. Du er sikker på at det ikke er andre instanser av SQL Server innstallert? Kjør select * from sys.databases . Finner du din database der? Hvis ja, kjør select db_name() Er du i riktig database context? Hvis ja, kjør select * from sys.tables Finner du tabellen din der? Hvis ja, sjekk at brukeren har rettigheter til å lese fra tabellen. Er tabellen opprettet med skjema dbo som eier? net_transport=Shared memory Det er bra. Lenke til kommentar
Manfred Skrevet 13. desember 2007 Forfatter Del Skrevet 13. desember 2007 Hmm. Du er sikker på at det ikke er andre instanser av SQL Server innstallert? Kjør select * from sys.databases . Finner du din database der? Ja Hvis ja, kjør select db_name() Er du i riktig database context? SELECT db_name() gav meg "master"... Lenke til kommentar
kaffenils Skrevet 13. desember 2007 Del Skrevet 13. desember 2007 Da er du i feil database context. Er du sikker på at databasen heter Invoice? Det er ikke noe skriveleifer ute å går? F.eks. at det skal være Invoices eller noe i den duren. Hvis du er helt sikker på at databasenavn er skrevet riktig så kan du gjøre to ting. Enten kjøre "USE Invoice" for å bytte databse context for din conenction, eller du kan sette default database til Invoice for brukeren enten i SSMS eller ved å kjøre ALTER LOGIN login_name WITH DEFAULT_DATABASE=Invoice Lenke til kommentar
Manfred Skrevet 13. desember 2007 Forfatter Del Skrevet 13. desember 2007 Testet forresten igjen... SELECT * FROM sys.databases -> Ja, den ligger i listen SELECT db_name() -> Invoice Jeg tipper feilen her ligger i schemas.. Ved nærmere ettersyn ser jeg at alle tabellene har "manfred" som schema Lenke til kommentar
Manfred Skrevet 13. desember 2007 Forfatter Del Skrevet 13. desember 2007 ...og selvfølgelig funket alt når jeg brukte manfred.Tabellnavn Hehe Så et siste spørsmål før jeg slutter å mase: Er det en måte jeg kan gjøre slik at jeg slipper å skrive manfred.Tabellnavn, dbo.Tabellnavn eller lignende i alle spørringer? Lenke til kommentar
kaffenils Skrevet 13. desember 2007 Del Skrevet 13. desember 2007 ...og selvfølgelig funket alt når jeg brukte manfred.Tabellnavn Hehe Så et siste spørsmål før jeg slutter å mase: Er det en måte jeg kan gjøre slik at jeg slipper å skrive manfred.Tabellnavn, dbo.Tabellnavn eller lignende i alle spørringer? Du må sørge for at databasebrukeresn default schema er manfred eller hva du nå bruker. ALTER USER username WITH DEFAULT_SCHEMA=manfred Hvis objektet ikke ligger i ditt default schema så må du spesifisere schema-navn i spørringene. Lenke til kommentar
Manfred Skrevet 13. desember 2007 Forfatter Del Skrevet 13. desember 2007 kan jeg endre alle tabellene, slik at de får et annet default schema da? Vet jeg har kjørt noen slike spørringer før, men har det ikke i hodet i alle fall. Lenke til kommentar
kaffenils Skrevet 13. desember 2007 Del Skrevet 13. desember 2007 For å overføre Tabellnavn fra schema manfred til schema dbo: ALTER SCHEMA dbo TRANSFER manfred.Tabellnavn Lenke til kommentar
Manfred Skrevet 13. desember 2007 Forfatter Del Skrevet 13. desember 2007 Tusen hjertelig takk for at du har giddet å følge med meg her skritt for skritt i dag Skylder deg en Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå