Android ile Mssql Stored Procedure Kullanımı

Nisan 21, 2013

Android ile mssql server işlemlerine devam niteliğinde ki bu yazıda android ile Mssql stored procedure kullanmayı inceleyeceğiz.Daha önceki yazılarıma buradan ve buradan ulaşabilirsiniz.

Uygulamamızı local sql server ‘da bulunan Northwind veri tabanı üzerinde gerçekleştireceğiz.Northwind veri tabanı ile ilgili detaylı bilgiye buradan ulaşabilirsiniz.

Northwind veri tanbanını local Mssql server veri tabanına kurduktan sonra sorgulama için kullanacağımız stored procedure adı CustOrderHist

Sql server ‘daki kullanım şekli şöyledir



‘ALFKI’ değeri Customers tablosundaki ilk kaydın ID bilgisidir.Stored procedure bizden 1 tane customers ID si istediği için bu bilgisi gönderiyoruz.Stodred procedure içeriği ise şu şekildedir








Bu stored procedure Android tarafında kullanmak aynı sql deki gibi olacaktır.Örnek için bir tane Android 4.0 veya üzeri proje oluşturalım ve ekran tasarımı


activity_main.xml dosyası kodları


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:id="@+id/llGenel"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" >
    </LinearLayout>

</RelativeLayout>


Uygulamamızın yüklenişinde verileri direkt sorgulayarak ekrana yüklüyoruz

MainActivity.java dosyası içeriği


package com.example.andproc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;

public class MainActivity extends Activity {

	LinearLayout llGenel;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);

		llGenel = (LinearLayout) findViewById(R.id.llGenel);

		try {
			Class.forName("net.sourceforge.jtds.jdbc.Driver").newInstance();
		} catch (InstantiationException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		new Thread(new Runnable() {

			public void run() {

				runOnUiThread(new Runnable() {
					public void run() {
						ResultSet results = null;

						try {
							Connection conn = DriverManager
									.getConnection(
											"jdbc:jtds:sqlserver://192.168.1.222:1433;databaseName=Northwind",
											"Android", "123456");
							Statement statement = conn.createStatement();
							statement = conn.createStatement(
									ResultSet.TYPE_SCROLL_INSENSITIVE,
									ResultSet.CONCUR_READ_ONLY);

							String sorgu = "Exec CustOrderHist 'ALFKI'";

							results = statement.executeQuery(sorgu);

							LinearLayout llIcerik = new LinearLayout(
									MainActivity.this);
							llIcerik.setOrientation(LinearLayout.VERTICAL);

							if (results != null) {
								while (results.next()) {

									LinearLayout llSatir = new LinearLayout(
											MainActivity.this);
									llSatir.setOrientation(LinearLayout.HORIZONTAL);

									String productName = results
											.getString("ProductName");
									String total = results.getString("Total");

									TextView tvProductName = new TextView(
											MainActivity.this);
									tvProductName.setText(productName);
									tvProductName.setWidth(350);

									TextView tvTotal = new TextView(
											MainActivity.this);
									tvTotal.setText(total);

									llSatir.addView(tvProductName);
									llSatir.addView(tvTotal);

									llIcerik.addView(llSatir);

								}

							} else {

							}
							llGenel.addView(llIcerik);
						} catch (SQLException e) {

						}
					}
				});

			}
		}).start();
	}
}


Kodlarımızın çalışması için ilk olarak jtds dosyasını buradan indirerek projemize dahil etmeliyiz bu dosya yardımı ile sql sorgularımızı çalıştırıyoruz.Dosyayı projemize dahil etmek için projemize sağ tık > Properties > Java Build Path > Libraries > Add External Jar diyoruz.

İzin ekliyoruz


AndroidManifest.xml dosyasının içeriği


<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.andproc"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="15" />
<uses-permission android:name="android.permission.INTERNET" />
    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/title_activity_main" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>



MainActivity.java dosyasının içerisinde yazdığımız kodlar uygulama başladığı anda çalışıp stored procedure ile veri tabanını sorgulayıp verileri ekrana getirecektir.Class.forName() ile projemize dahil ettiğimiz dosyanın içeriğine ulaşıyoruz.Daha sonra yeni bir tane thread açarak sql ile ilgili işlemlerimizi yapıyoruz. Connection oluştururken url olarak yazdığımız 192.168.1.222 bilgisi benim local bilgisayarımın ip bilgisidir siz o kısma kendi bilgisayarınızın ip adresini yazmalısınız bu gibi daha detaylı bilgiye buradaki yazımdan ulaşabilirsiniz

Sorgu sonucunda oluşan verileri düzgün bir şekilde LinearLayout’a aktarıp en sonra xml tarafında eklediğimiz ana LinearLaout içerisine ekliyoruz



Ekran Görüntüsü




Kaynak Kodları Buradan İndirebilirsiniz

posted in Android by gokhan

Follow comments via the RSS Feed | Yorum yapın | Trackback URL

Leave Your Comment

*

 
Powered by Wordpress and MySQL. Theme by Shlomi Noach, openark.org