Merhaba. Android ile ağdaki firebird veritabanına bağlantıda sıkıntı yaşıyorum.

try {

     Class.forName("org.firebirdsql.jdbc.FBDriver");
     DriverManager.getConnection("jdbc:firebirdsql:192.168.2.105/3050:D:/DATA/DENEME.FDB", "SYMBOL", "2000");
     text.setText("Baglantı Başarıyla Sağlandı.");

}
catch (Exception e) {
    text.setText("HATA : " + e.getMessage());
}

Aldığım hata : org.firebirdsql.jdbc.FBDriver

Kullandığım kütüphane : jaybird-full-2.2.1.jar

Eklenen İzinler :

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

Yardımcı olursanız sevinirim.

soruldu: 24 Haz '14, 08:26

yavuz's gravatar image

yavuz
101124
cevap kabul oranı: 100%


Sorunu çözdüm hocam Android 2.3.3 üstü SDK’lerde ek olarak kod eklemem gerekiyormuş.

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

Yardımınız için teşekkür ederim.

permanent link

cevaplandı: 26 Haz '14, 03:24

yavuz's gravatar image

yavuz
101124
cevap kabul oranı: 100%

android 3.0 surumu ile birlikte network'e cıkmak vs gibi uzun suren islemlerde ui thread kitlenip kullanıcı deneyimi dusmesin diye bu io islemlerinin main(ui) thread uzerinde koşmasına engel koydu, bir islem ui thread'i 3-5 sn kitlerse sistem otomatikman anr(application not responding) diyalogu cikartiyor: http://developer.android.com/training/articles/perf-anr.html

siz muhtemelen veritabanı baglantisini farklı bir thread uzerinden gerceklestirmediginiz icin NetworkOnMainThreadException hatasini alıyordunuz, yukardaki kod gecici olarak anr mekanizmasını devredısı bırakıyor, kullanmanızı onermem: http://gturedi.blogspot.com.tr/2013/07/asynctaskden-deger-dondurmek.html

farklı thread'de islem yapma ornegi:

Thread thread = new Thread(new Runnable(){
    @Override
    public void run() {
        try {
            //veritabanına baglan, sorgu at vs
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
});

thread.start();
permanent link

cevaplandı: 26 Haz '14, 03:51

gturedi's gravatar image

gturedi
2.8k41538
cevap kabul oranı: 26%

değiştirildi: 26 Haz '14, 03:55

Ben arada böyle hata alıyordum ama bundan dolayı olduğunu bilmiyordum. Verdiğiniz bilgiden dolayı teşekkür ederim.

(26 Haz '14, 11:05) yavuz yavuz's gravatar image
1

ben tesekkur ederim, iyi calismalar :]

(26 Haz '14, 13:13) gturedi gturedi's gravatar image

Merhaba

Yazdığınız kodda bir hata göremedim.

Bağlanmak istediğiniz veritabanına dışardan erişime açık olduğundan emin olmakta fayda var. Bağlantıyı test etmek için ibexpert,ems firebird veya firebird maestro gibi client tool ile bağlanılabilirliği test edebilmek mümkündür.

Daha önce ben bir test yapmıştım.Ve test başarılıydı.

Android Firebird JDBC Driver Port kütüphanesini indiriyorsun.

Daha sonra indirdiğin paket içersinde ki libs klasörü içersindeki dosyaları projende ki libs klasörü içersine kopyalıyorsun ve Jaybird2_2_3.jar dosyasına sağ tıklayıp -> Build Path -> Configure Build Path -> Add JARs ile libs klasörüne eklediğin Jaybird2_2_3.jar dosyasını seçiyorsun.

yine indirdiğin paket içersinde ki assets klasörünü de projene kopyalamalısın.

proje ağaç yapısı şöyle gözükmeli.

alt text

üzerine sarı ile çizdiğim dosyalar sourceforge'dan indirip,projeye eklediğim dosyalardır.

kolay gelsin...

permanent link

cevaplandı: 24 Haz '14, 14:16

ismailkocacan's gravatar image

ismailkocacan
2.4k31733
cevap kabul oranı: 13%

Hocam dediğiniz gibi yapıyorum ancak bu seferde null diye bir hatayla karşılaştım. Bağlantıda bir sıkıntı yok java ile veri çekebiliyorum. Eğer mümkünse bir örnek android prejesi verebilir misiniz ?

(25 Haz '14, 11:19) yavuz yavuz's gravatar image

Nasıl bir sorgu çalıştıyorsunuz ? Birde hata çıktısını buraya yazarsanız anlamamız daha kolay olur.

(25 Haz '14, 17:41) ismailkocacan ismailkocacan's gravatar image

android ugyulamasi icinden direkt veritabanına ersim güvenlik açısından sıkıntılı bir konu, mimari olarak hoş değil. araya web service koymanı öneririm. benzer konu:http://www.btsoru.com/questions/1786/android-ile-mysql-baglantsn-nasl-yapabilirim

permanent link

cevaplandı: 25 Haz '14, 01:58

gturedi's gravatar image

gturedi
2.8k41538
cevap kabul oranı: 26%

öneriniz için teşekkürler direk android ile bağlanamazsam bunu denerim. :)

(25 Haz '14, 11:25) yavuz yavuz's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×819
×8

Soruldu: 24 Haz '14, 08:26

Görüntüleme: 825 kez

Son güncelleme: 26 Haz '14, 13:13

powered by BitNami OSQA