View Full Version : سوال: ارتباط با sqlserver
comptech
پنج شنبه 21 مرداد 1389, 21:00 عصر
با سلام خدمت دوستان.
براي ارتباط با بانك sqlserver از چه دستوراتي بايد استفاده كنم. ممنون
comptech
جمعه 22 مرداد 1389, 14:02 عصر
لطفا يكي جواب بده . من دستورات زير رو نوشتم ولي خطا داد:
import java.sql.*;
public class OdbcSqlServerConnection {
public static void main(String [] args) {
Connection con = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver") ;
// Connect with a full url string
con = DriverManager.getConnection(
"jdbc:odbc:SQL_SERVER;user=REZA;password=''");
System.out.println("First connection ok.");
con.close();
// Connect with a url string and properties
java.util.Properties prop = new java.util.Properties();
prop.put("user", "REZA");
prop.put("password", "");
con = DriverManager.getConnection("jdbc:odbc:SQL_SERVER",
prop);
System.out.println("Second connection ok.");
con.close();
} catch (Exception e) {
System.err.println("Exception: "+e.getMessage());
}
}
}
خطايي كه ميده:
Exception: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
comptech
پنج شنبه 28 مرداد 1389, 11:27 صبح
از دوستان كسي نمي تونه منو راهنمايي كنه؟
ermia2008
پنج شنبه 28 مرداد 1389, 12:06 عصر
سلام دوست عزیز.
ورژن SqlServer شما چنده؟
تغییرات رو طبق مثالی که براتون میذارم هم در Class.forName و هم در Connection اعمال کنید ببینید مشکلتون حل میشه یاخیر؟
این مثالی هست که خودم برای بار اول برای ارتباط با SqlServer2005 استفاده کرده بودم و کاملا درسته و تست شده هست.
در ضمن مطمئن بشید که درایور مورد نظر که همون فایل جری هست که باید از سایت مایکروسافت یا ... دانلود کرده باشید به برنامتون اضافه کردید!
import java.sql.*;
import java.awt.*;
public class Main extends Frame{
public static void main(String[] args) throws InstantiationException
{
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
}
catch(Exception e){
System.out.println("Error:!" + e.getMessage() );
}
System.out.println("1.Driver Successfully!");
try
{
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:2892;databaseName=test;integratedSecurit y=false;","sa","1");
System.out.println("2.Connection Successfully!\n\n");
Statement stmt=con.createStatement();
ResultSet rs=stmt.executeQuery("SELECT * From tblPerson");
System.out.println("NAME"+ " " + "TEL");
System.out.println("---------------------");
while(rs.next())
{
System.out.println(rs.getString("name") + " " + rs.getString("tel"));
}
rs.close();
stmt.close();
con.close();
}//end of try
catch(SQLException se)
{
System.out.println("SQL Exception: " + se.getMessage());
se.printStackTrace(System.out);
}
}
}
comptech
پنج شنبه 28 مرداد 1389, 13:23 عصر
با تشكر از شما.من از sqlsever2005 استفاده مي كنم.متوجه نشدم كه درايور چي رو بايد نصب كنم و چطور بايد اون رو به برنامه اضافه كنم، اگر ممكنه بيشتر توضيح بدين.
آيا در قسمت
("jdbc:sqlserver://localhost:2892;databaseName=test;integratedSecurit y=false;","sa","1");
به جاي "sa" , "1" و .. بايد چيز خاصي قرار داد؟
كدي كه شما گفتيد رو نوشتم خروجي زير رو داد:
run:
Error:!com.microsoft.sqlserver.jdbc.SQLServerDrive r
1.Driver Successfully!
SQL Exception: No suitable driver found for jdbc:sqlserver://localhost:2892;databaseName=test;integratedSecurit y=false;
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:2892;databaseName=test;integratedSecurit y=false;
at java.sql.DriverManager.getConnection(DriverManager .java:602)
at java.sql.DriverManager.getConnection(DriverManager .java:185)
at javaapplication1.Main.main(Main.java:31)
BUILD SUCCESSFUL (total time: 0 seconds)
ermia2008
پنج شنبه 28 مرداد 1389, 14:49 عصر
با تشكر از شما.من از sqlsever2005 استفاده مي كنم.متوجه نشدم كه درايور چي رو بايد نصب كنم و چطور بايد اون رو به برنامه اضافه كنم، اگر ممكنه بيشتر توضيح بدين.
آيا در قسمت
("jdbc:sqlserver://localhost:2892;databaseName=test;integratedSecurit y=false;","sa","1");
به جاي "sa" , "1" و .. بايد چيز خاصي قرار داد؟
كدي كه شما گفتيد رو نوشتم خروجي زير رو داد:
run:
Error:!com.microsoft.sqlserver.jdbc.SQLServerDrive r
1.Driver Successfully!
SQL Exception: No suitable driver found for jdbc:sqlserver://localhost:2892;databaseName=test;integratedSecurit y=false;
java.sql.SQLException: No suitable driver found for jdbc:sqlserver://localhost:2892;databaseName=test;integratedSecurit y=false;
at java.sql.DriverManager.getConnection(DriverManager .java:602)
at java.sql.DriverManager.getConnection(DriverManager .java:185)
at javaapplication1.Main.main(Main.java:31)
BUILD SUCCESSFUL (total time: 0 seconds)
خوب به جای sa باید یوزری که بوسیله اون به دیتابیس وصل میشید و به جای 1 هم باید پسورد رو بذارید.
درایوری که گفتم اینه:
دانلود (http://rapidshare.com/files/413849055/sqljdbc_1.2.2828.100_enu.exe)
این رو دانلود کنید و به لایبری برنامتون اضافه کنید. البته با انجام همه این کارها هنوز باید با چند ارور دیگه روبرو بشید به احتمالا زیاد!
ارتباط جاوا با sqlserver یه کم مشکله و احتیاج به خیلی از تنظیمات داره. خودم حدود 2 هفته سر همین خواب نداشتم که بالاخره حل شد. توصیه میکنم اگه خیلی ضروری نیست که به SqlServer وصل بشید از MySql استفاده کنید چون ارتباط با اون بسیار راحته و احتیاج به تنظیمات خاصی نداره! از اونجایی که هم جاوا و هم MySql مال یه شرکت هستن مسلما ارتباطشون هم خیلی باید راحت تر باشه!
در هر صورت این کارها رو انجام بدید اگه اوکی نشد یه چند تا مرحله دیگه هم هست که باید انجام بدید تا مشکل برطرف بشه. ولی باز میگم اگه خیلی ضروری نیست که از SqlServer استفاده کنید برید سمت استفاده از MySql!
موفق باشید
comptech
پنج شنبه 28 مرداد 1389, 18:01 عصر
حرف شما كاملا درسته ولي ضروري هست كه بايد با sqlserver كار كنم. من اون فايل رو به لايبري اضافه كردم و لي بازم خطاي زير رو ميده:
run:
1.Driver Successfully!
SQL Exception: Login failed for user ''. The user is not associated with a trusted SQL Server connection.
com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user ''. The user is not associated with a trusted SQL Server connection.
at com.microsoft.sqlserver.jdbc.SQLServerException.ma keFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF (Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSParser.parse(Unkno wn Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.s endLogon(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.l ogon(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.a ccess$000(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection$L ogonCommand.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Un known Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.e xecuteCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.c onnectHelper(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.l oginWithoutFailover(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.c onnect(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerDriver.conne ct(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager .java:582)
at java.sql.DriverManager.getConnection(DriverManager .java:185)
at javaapplication1.Main.main(Main.java:31)
BUILD SUCCESSFUL (total time: 0 seconds)
ميشه راهنمايي كنيد قسمت new database connection رو كه در زير آوردم پر كنم. يعني ببينيد درست پر كردم يا نه:
driver name:microsoft sql server 2005
host:localhost
port:1433
database:REZA
instance name:
user name:reza
password:1234
اصلا لازمه كه همه قسمت ها رو پر كنم.من هر جوري كه نوشتم خطا داد.
ermia2008
پنج شنبه 28 مرداد 1389, 20:52 عصر
خوب خدا رو شکر از اون ارور خفناش به شما نخورده!
خوب وقتی که با ارور زیر روبرو شدید یعنی یه جورایی کار درست پیش رفته:لبخندساده:
SQL Exception: Login failed for user ''. The user is not associated with a trusted SQL Server connection.
خوب این مشکل دیگه از طرف کد شما نیست بلکه از تنظیمات داخل خود SqlServer هست باید به یوزری که میخواید باهاش وصل بشید Permission های لازمه رو بدید داخل تنظیمات دیتابیس که برید یه قسمت برای Permission ها داره که فلان یوزر بتونه Connect بشه یا بتونه از دستور Select یا ... استفاده کنه یا خیر.
الان SqlServer ندارم که دقیق بهتون بگم. ولی این اشکال مربوط به این مورد میشه
موفق باشید
a_r0711
یک شنبه 02 آبان 1389, 19:31 عصر
سلام بهتره اول درایورsql serverنصب بشه
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection cn = DriverManager.getConnection("jdbc:odbc:*****");
System.out.println("Connection established: " + cn);
return cn;
} catch (ClassNotFoundException e) {
e.printStackTrace();
return null;
} catch (SQLException e) {
e.printStackTrace();
return null;
}
براینصب درایور مراحل زیرو طی کنید.
start\controlPanel\administrative\dataSource(ODBC) ;
در ضمن بجای starدر قسمت connectionباید اسم درایورتونو بزارید .
یادتونم باشه user DNSرو خوب تنظیم کنید.
mohssen_mz
چهارشنبه 11 خرداد 1390, 08:34 صبح
سلام
آیا راحی وجود داره که نخوایم به صورت بالا کانکت بشیم یعنی یوزر و پسورد را ندیم و یا به صورت زیر به دیتابیس وصل بشیم
Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=mydb;Data Source=server\MSSQLSERVER2008
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.