کار با درایور JDBC
با سلام و عرض تشکر از استاد گرانقدر:
من تا آخر ویدئوهای قسمت 11 رو نگاه کردم.اگر در ویدئوهای آتی آموزشی در مورد کار با درایور jdbc از jTDS API ، برای اتصال مستقیم به SQLServer رو نزاشتید ، بسیار ممنون میشم این کار رو هم انجام بدید.من بتازگی سفارش DVD ها رو هم دادم.
با تشکر
jTDS رو از لینک ذیل دانلود میکنید.
http://jtds.sourceforge.net
فایل jar داخلش را در پوشه lib پروژتون کپی میکنید و از طریق منو و گزینه های Project\properties\java build path\libraries\add jars به اون رفرنس میدی و سپس تو کد به این طریق به SQL server وصل میشی:
در این مثال اسم پایگاه داده DB_test هست که در آی پی 192.168.10.20 و پورت 443 قرار داره،اسم جدول مورد نظر user هست که اطلاعاتش قراره تو EditText نمایش داده بشه.
حالا من نمیدونم کجای کارم اشتباهه که موقع اجرا دقیقا به سطر اول (یعنی class.forname) ایراد در میاره؟در ضمن من میدونم که این روش امنی نیست!
ممنون از پاسختون
public void ConnectToDatabase(){
try {
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
String username = "XXXXXXXXX";
String password = "XXXXXX"; Connection DbC + username + ";password=" + password);
Log.w("Connection","open");
Statement stmt = DbConn.createStatement();
ResultSet reset = stmt.executeQuery("select * from users ");
EditText num = (EditText) findViewById(R.id.displaymessage);
num.setText(reset.getString(1));
DbConn.close();
}
catch (Exception e)
{
Log.w("Error connection","" + e.getMessage());
}
}
من منظورتون رو متوجه نشدم!
خوب در VB با استفاده از ADO میشه به هر نوع DataBase وصل شد.من در اندروید به SQL Server با استفاده از ASP.net میتونم وصل بشم و نیازی به PHP هم نیست و مشکلی ندارم.مشکل اینجاست که اگه نخوام از WebServer استفاده کنم و بخوام مستقیما به DataBase وصل شم باید از JDBC استفاده کنم.حتی Microsoft هم JDBC خودش رو برای جاوا کارها ارائه داده:
http://www.microsoft.com/en-gb/download/details.aspx?id=11774
ولی موضوع اینجاست که چرا کار نمیکنه؟شاید با Eclipse indigo استاد آقاجانی سازگار نیست؟ اینا حدس های من هستن!
ممنون از پاسختون
باز هم از وقتی که گذاشتید متشکرم.
من منتظر پاسخ از سایر دوستان بالاخص استاد گرامی هستم.باتشکر
از جناب استاد و دوستانی که انقدر لطف دارن و با پاسخ های فراوانشون بنده تازه کار رو شرمنده کردن متشکرم!!!
البته از جناب alu0075 واقعا متشکرم.
در هر حال خود تازه کارم ، جواب سوالم رو پیدا کردم ! و در پایین بصورت مرحله به مرحله برای استفاده بقیه قرار میدم:
1- Eclipse من نسخه INDIGO و ADT نسخه 18.0.1 و JDK نسخه 1.6u45 می باشد
2- jTDS و دقیقا نسخه 1.2.7 رو از لینک http://sourceforge.net/projects/jtds/files/jtds/1.2.7/jtds-1.2.7-dist.zip/download دانلود کنید و پس از دانلود ، فایل را unPack کرده و فایل jtds-1.2.7.jar رو به پوشه lib پروژتون اضافه کنید (اگر پوشه lib در پروژتون وجود نداشت با راست کلیک بر روی نام پروژه و از طریق New->Folder اونو ایجاد کنید)
3- بر روی فایل jtds-1.2.7.jar در پوشه lib راست کلیک کرده و روی Build Path -> Add to Build Path کلیک کنید.
4-دوباره بر روی فایل فوق راست کلیک کرده و اینسری بر روی Build Path ->Configure Build Path کلیک کنید و در پنجره باز شده به تب Order and Export رفته و در لیست داخل آن گزینه jtds-1.2.7.jar - SQLtest/lib را تیک بزید و سپس OK بزنید تا پنجره بسته شود.
5-حالا میتوانید با استفاده ازFunction ذیل اطلاعات DataBase ای به مشخصات زیر را بخوانید:
SQLServer2008R2 :DBMS
نام پایگاه داده: Cake
نام کاربری دسترسی به سرور (دقت کنید که نام کاربری کاربر پایگاه داده نیست) : sa
رمز عبور دسترسی به سرور: 123
نام جدول مورد نظر: Groups
اولین فیلد جدول : از نوع int
دومین فیلد جدول : از نوع nvarchar
سومین فیلد جدول : از نوع nvarchar
private void FetchDBdata()
{
try
{
log.i("Package", "open");
Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
Log.i("Connection", "open");
Connection CN1 = DriverManager.getConnection ("jdbc:jtds:sqlserver://"+
"192.168.1.25;databaseName=Cake;", "sa", "123");
Statement stmt = CN1.createStatement();
Log.i("Table", "fetch");
ResultSet reset = stmt.executeQuery("select * from Groups");
Log.i("Row", "Display");
while (reset.next())
{
Log.i("Row Output", reset.getInt(1) + " " + reset.getString(2) + " " + reset.getString(3));
}
CN1.close();
}
catch (Exception ex)
{
Log.e("Error", ex.getMessage().toString());
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .