Avatar billede macpain Nybegynder
10. juni 2004 - 09:07 Der er 9 kommentarer og
1 løsning

Brug af Stored Procedures

Jeg har lavet et program der skal kalde en webservice der håndtere et Stored Procedure kald
Programmet har fået sat referencen ind til webservicen og bliver kaldt ok, men min webservice låser og kommer ikke nogen steder.

Som følgende webservice:

private System.Data.Odbc.OdbcConnection trsOdbcConnection;
private System.Data.Odbc.OdbcCommand trsOdbcCommand;
trsOdbcConnection = new    System.Data.Odbc.OdbcConnection (Registration.SqlStatements.Connection());
//Create odbc command
trsOdbcCommand = new System.Data.Odbc.OdbcCommand("{ CALL VallidateTimeCode(?,?) }",trsOdbcConnection);
trsOdbcCommand.CommandType = CommandType.StoredProcedure;
//If odbc connection is    closed,    open           
if(trsOdbcConnection.State != System.Data.ConnectionState.Open)
trsOdbcConnection.Open();
OdbcParameter timeCodeId = trsOdbcCommand.Parameters.Add("@time_code_id",OdbcType.Int);
timeCodeId.Direction = ParameterDirection.Input;
OdbcParameter returnValue = trsOdbcCommand.Parameters.Add("@returnValue",OdbcType.Int);
returnValue.Direction = ParameterDirection.Output
timeCodeId.Value = 8;
locReturnValue = trsOdbcCommand.ExecuteNonQuery();

Herefter sker der ingenting

Stored proceduren er som følgende:

ALTER PROCEDURE dbo.VallidateTimeCode
    @time_code_id INT,
    @returnValue INT OUTPUT           
AS
    SET @returnValue = 0
    BEGIN
        SELECT * FROM TIME_CODE
        WHERE time_code_id = @time_code_id
       
        IF @@ROWCOUNT = 0
            set @returnValue = 1
           
    END
    RETURN

Hjææææælpppp!!!
Avatar billede macpain Nybegynder
10. juni 2004 - 14:20 #1
ExecuteNonQuery kan ikke bruges her!!
Avatar billede wisen Nybegynder
02. august 2004 - 12:38 #2
Har du fået løst dit problem ?
Avatar billede macpain Nybegynder
02. august 2004 - 14:56 #3
Jeg har fundet ud af at brugen af Stored procedures og ODBC forbindelser ikke fungere særlig godt.
Dette gølder specielt hvis man f.eks. vil returnere en fejl koden sammen med et recordset. Hvis man vil have dette til at fungere skal man bruge sqlcommand.
Så jo jeg har fået løst mit problem, hvis man gerne vil bruge fejl koder har læst lidt om at man evt. kan bruge RAISEERROR til dette formål, men det har jeg ikke brugt megen tid på.

Havde du en anden løsning?
Avatar billede macpain Nybegynder
02. august 2004 - 15:00 #4
Til det ovenstående mener jeg sqlconnection og ikke sqlcommand, den skal jo altid bruge :-)
Avatar billede wisen Nybegynder
02. august 2004 - 15:07 #5
Nej, jeg har ikke lige en løsning parat - faktisk ville jeg bare ha' dig til at lukke spørgsmålet hvis du havde fået løst dit problem :)

Jeg har desværre ikke arbejde med ODBC - men hvilken database benytter du siden du  skal bruge ODBC ?
Avatar billede macpain Nybegynder
04. august 2004 - 22:21 #6
En ganske alm. sql-database, med en 2003 server! Har også senere fundet ud af at ODBC er forældet.

Spg. er hermed lukket!
Avatar billede wisen Nybegynder
05. august 2004 - 07:33 #7
psst... du har stadig ikke lukket spørgsmålet :)
Avatar billede macpain Nybegynder
14. august 2004 - 12:59 #8
Har trykket på accepter, der sker bare ingenting!!
Avatar billede arne_v Ekspert
14. august 2004 - 13:05 #9
Du skal markere brugernavnet så det er blåt inden du klikker accepter.
Avatar billede macpain Nybegynder
15. august 2004 - 22:01 #10
Arrhh hvem kunne vide det! Troede det spille med navnet i tekstboksen, men ja....
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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