Hoşgeldin. Soru sormak veya cevaplamak için hemen üye ol.

Swift ile SQL'e bağlantı kurmak

0 oy
117 kez görüntülendi
13, Mart, 2017 ios development kategorisinde ibolat tarafından soruldu

Merhaba Akadaşlar,

Yaptığım araştırmalar sonucunda pek bir sonuca ulaşamadığım için sizlere sormak istedim. Uygulamada yapmak istediğim kullanıcının telefonu ile kendi local veritabanının bulunduğu bilgisayar aynı ağda (wifi) olduğu sürece veritabanında bir update olduğu zaman bildirim göndermesi bu aşamada sql ile nasıl connection kuracağımı ve sorgu (select) vs. yapacağımı bulamadım. 3. parti swift ile yazılmış bir kütüphanede bulamadım bu konuda bilgisi olan varsa paylaşırsa sevinirim. Bu connection olayını android'te jcifs kütüphanesini kullanarak çok rahat bir şekilde yapmıştım.

İyi Çalışmalar.

1 cevap

0 oy
13, Mart, 2017 yasin tarafından cevaplandı
22, Mart, 2017 ibolat tarafından seçilmiş
 
En İyi Cevap

Bu işe özel hazır bir kütüphane var mıdır bilemedim.
Socket üzerinden bir şeyler yapmak yerinde olur kanaatimce.
IOS tarafında CocoaAsyncSocket bu iş için kullanılabilecek güzel bir Socket kütüphanesi.

17, Mart, 2017 ibolat tarafından yorumlandı

Yasin abi Objective-C de yapılmış olan bu (SQLClient) library işimi görecek gibi cocoapods ile uygulamama ekledim ama bunu swift kullanarak nasıl çalıştıracağım.

17, Mart, 2017 ibolat tarafından yorumlandı
17, Mart, 2017 yasin tarafından yorumlandı

objective-C kütüphanesini swift'e bridgingHeader kullanarak eklemen lazım.

proje altında yeni bir header dosyası oluştur.
"BirdgingHeader.h" gibi
kütüphaneyi bu dosya içerisinde import et.

#import "<SQLClient/SQLClient.h>"

targets > build settings > swift compiler general altındaki
Objective-C Bridging Header satırında (Debug ve Release satırlarına)
oluşturduğun BirdgingHeader.h dosyasının yolunu belirt.

"myProject/BirdgingHeader.h"

20, Mart, 2017 ibolat tarafından yorumlandı
22, Mart, 2017 ibolat tarafından düzenlendi

yasin abi bridgingHeader'ı ekledim ve header(SQLClient.h) ve (SQLClient.m) olarak 2 file oluşturdum şu an swift class'ında buralara erişim yapabiliyorum. Şuanki sıkıntım aşağıdaki kodu SQLClient.m dosyasında bir fonksiyona eklediğim de bir çok hata alıyorum.

Hata Resmi

> SQLClient* client = [SQLClient sharedInstance];
client.delegate = self;
[client connect:@"server:port" username:@"user" password:@"pass" database:@"db" completion:^(BOOL success) {
    if (success)
    {
      [client execute:@"SELECT * FROM Users" completion:^(NSArray* results) {
        for (NSArray* table in results)
          for (NSDictionary* row in table)
            for (NSString* column in row)
              NSLog(@"%@=%@", column, row[column]);
        [client disconnect];
      }];
    }
}];

//Required
- (void)error:(NSString*)error code:(int)code severity:(int)severity
{
  NSLog(@"Error #%d: %@ (Severity %d)", code, error, severity);
}
22, Mart, 2017 yasin tarafından yorumlandı

SQLClient'in delegate metodlarına erişebilmek için header dosyası içerisine SQLClientDelegate'i eklemelisin.
şurada olduğu gibi yani.

22, Mart, 2017 ibolat tarafından yorumlandı

SQLClientDelegate

bu şekilde hata veriyor yasin abi ?

22, Mart, 2017 yasin tarafından yorumlandı

hımmm.
SQLClient kütüphanesini nasıl ekledein projene?
cocoapods'mu kıullandın, yoksa manuel mi?
bridgingheader'ı halledebildin mi?
orada bir sıkıntı olabilirmi acaba.

22, Mart, 2017 ibolat tarafından yorumlandı

Yasin abi çok teşekkür ederim, Cocoapods kullandım, şu an bağlandım sorgu yapabiliyorum :) bu konu başlığı altında çözüm olsun diye aynı bağlantıyı kullanacak arkadaşlar içinde ilerleyen günlerde demo bi proje oluşturup buraya atayım...

22, Mart, 2017 yasin tarafından yorumlandı

rica ederim ibrahim. Yardımcı olabildiysem ne mutlu.

...