Y yohpops Medlem sedan feb. 2001 1 198 inlägg Frågan 30 apr. 2004 11:38 #1 Hej.
Vilka classer ska man använda och hur ska man använda dem om man vill ansluta sig till en lokal MsSql-server och göra en execute?
Jaga ska bara exekvera en stored procedure inte returnera någon data.
Har gjort såhär.
<%@ page import="java.sql.*"%>
<%
Connection cn = DriverManager.getConnection("dsn=localserver;uid=sa;pwd=");
Statement st = cn.createStatement() ;
st.execute("exec dbo.add_mfile '"+ fname +"',"+ flen);
cn.commit();
%>
Men jag får felet java.sql.SQLException: No suitable driver.
Hur ska jag göra?
mvh
yohpops
MSSQL drivrutiner
Börja med att ladda ner rätt JDBC drivrutiner från Microsoft sajt:
http://www.microsoft.com/downloads/details.aspx?FamilyID=9f1874b6-f8e1-4bd6-947c-0fc5bf05bf71&DisplayLang=en
Sen så måste du ladda drivrutinen innan du använder den med:
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
Sen för att få en koppling till databasen kör du, byt ut xxx mot namnet på database du vill koppla upp dig mot:
Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;databaseName=xxx", "sa", "");
Sen för att köra en stored procedure så skriver du:
CallableStatement cstmt = conn.prepareCall("{call add_mfile( ?, ? )}");
cstmt.setString(1, fname);
cstmt.setInt(2, flen);
cstmt.execute();
Där varje frågetecken i prepareCall strängen måste ha en motsvarande setXXX metod vilken metod som ska användas beror på vilken typ av in parameter proceduren tar.
Y yohpops Medlem sedan feb. 2001 1 198 inlägg Fick det inte att fungera först men när jag hoppade över din sista punkt och använde
Statement st = cn.createStatement() ;
st.execute("exec dbo.add_file '"+ fname +"',"+ flen);
så funkade det.
Nu ska jag bara luska ut hur man hämtar data också.
Viktor Medlem sedan aug. 2002 1 752 inlägg Tråd flyttad från "Java 2 Enterprise Edition".
/Viktor