29. august 2003 - 14:10Der er
25 kommentarer og 3 løsninger
Komme uden om Stored Procedures?
Hej!
Jeg arbejder med et system/bygger videre på, som benytter en del stored procedures - Nu ligger landet bare sådan, at jeg intet aner om Stored Procedures(SP) og når jeg prøver at indsætte nogle data i en tabel, får jeg følgende:
INSERT INTO medlem_medlemmer (medlem_brugernavn,medlem_type,medlem_mail1,medlem_mail2,medlem_password,medlem_oprettet_dato) VALUES('testerpigen', '1', 'nej@tak.dk', '', '1234', '2003-8-29 14:0:23') Microsoft OLE DB Provider for SQL Server error '80040e14'
Could not find stored procedure 'Bla'.
Mit spørgsmål er så, hvordan kan jeg evt. komme uden om at den skal bruge de SP's ? - Eller kan jeg tilføje noget kode, så den ligefrem fatter noget? :)
Håber der er nogle kloger hovedet der lige ved det... :)
Hvis du får fejl på den insert, lyder det som om, at der er en trigger på medlem_medlemmer ved insert, og denne så kalder en stored procedure, der ikke kan findes.
Indholdet? - Ja, der ligger jo en masse oplysninger i den tabel der hedder medlem_medlemmer - Og forsøger at sætte data ind via en alm. sql sætning. Kender som sagt intet (NADA!) til SP's og kan ikke lige udmiddelbart se hvordan den skulle kalde dem fra scriptet? - Det må foregår i noget i selve Enterprise Manager... Kan jeg evt. slå det fra ?
Hvis du i Query Analyzer vælger tabellen medlem_medlemmer, folder ud, vælger triggers og markerer højreklikker på triggeren, kan du vælge Create to new window. Det give dig udseended af triggeren.
Derudover er det helt klart smartere at du lærer at bruge SP, i stedet for at du skal skrive det hele om. Du kan jo starte med at se på de SP som er en del af systemet!!.
Problemet er bare, at det system der er nu (noget værre lort :() er blandet sammen af en masse andre systemer, og kan se at den har en masse SP's den slet ikke bruger til noget.
Og da jeg ikke selv bruger SP's ville jeg foretrække helt at fjerne dem, frem for at bruge en del tid på at sætte mig ind i dem....
Men prøver lige at indsætte direkte i query analyzer
Som kichian siger, så er det en *langt* bedre ide at sætte sig ind i stored procedures. Stored procedures udføres på SQL Serveren, så du sparer båndbredde på et netværk ved ikke at skulle overføre data til klienten, behandle dem, og derefter sende dem tilbage.
Desuden har jeg haft erfaring med, at en select udført i en stored procedure gav hurtigere respons end en select udført gennem en adodb.connection/recordset fra Visual Basic.
Normalt ville jeg være enig, men i dette tilfælde, skal jeg oprette en bruger internt i systemet, hvilket sker 1-2 gange om måneden, så det er derfor ikke noget der ville tage den store båndbrede. Når jeg lige har en del tid til overs, vil jeg også gerne sætte mig ind i SP's, men det har jeg desværre ikke for tiden :( Derfor jeg efterspurgte en hurtig løsning på problemet....
Njaa...Jow... Det er ikke lige til at sige allerede. Hvordan ser din connection ud?
Jeg ville nok lave den med command objektet også, (thats the right way)... Men burde ikke betyde noget.
Prøv lige at skrive Myconn.execute("select 2 as d") - funker det? tag endvidere dit output fra response.writen og smid direkte ind i query analyzeren - funker det?
hehe, damn, det var da utroligt :) Nu kommer den godt nok med en anden fejl, men dog med en lidt mere håndgribelig fejl :) Tak skal du have :) Vender lige tilbage når det virker helt...
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.