BDS 2006'da ADO.NET 2.0 desteği yapılabilir mi?[Çözüldü]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

BDS 2006'da ADO.NET 2.0 desteği yapılabilir mi?[Çözüldü]

Mesaj gönderen kahraman1285 »

Mrb.

BDS 2006 kullanıyorum ve Delphi içindeki ADO NET bileşenlerinin ADO.NET 1.0 olduğunu gördüm.

ADO .NET 2.0 içinde yer alan SqlDependency özelliğini kullanmak istiyorum. Fakat Yeni bir net projesi açıp namespace alanına SqlDependeny sınıfının unit adı olan SqlDependency ekleyemiyorum (SqlDependency değişkeni tanımlayamıyorum.).hata veriyor. (Undeclared)

Anladığım kadarıyla bu özellik ve ilgili sınıf ADO.NET 2.0 içinde yer almaktadır. Bu noktada ben bu özelliği kullanabilmek için:

1.Delphi 2006 'mı nasıl ADO.NET 2.0 'a Upgrade edebilirim. Böyle bir yükseltme mümkün müdür?

2.CodeGear Delphi 2007 sürümünde kullanılan ADO.NET sürümü hangisi bilgisi olan var mı ?

:shock: Sqldependency nedir diye merak edenler için konuyla ilgili bir makale:
http://www.csharpnedir.com/makalegoster.asp?MId=391

Herkese Kolay gelsin?
En son kahraman1285 tarafından 16 Oca 2008 09:21 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
tears
Üye
Mesajlar: 79
Kayıt: 29 Kas 2004 12:32

Mesaj gönderen tears »

2 sorunun cevabı

BDS 2007 ADO.NET 2.0 kardeşim...

Kolay gelsin.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Konuyu yanlış anlamış da olabilirim ancak MSAccess'e entegre ettiğim bir TCP mesaj Protokolü ile kurduğum bir sistemi çağrıştırdı.

Peşinen kabul ediyorum hali hazırda bu işi yapan bir sistem varsa mevcut bu sistem kullanılarak proje geliştirmek en akıllıca olanıdır. Diğer yandan bahsedeceğim işlem küçük şirketler için gereğinden büyük çaplı altyapı kurmanın maliyeti çok çok yukarılara çekmesinden kaynaklı kendimce ürettiğim çözümdür. Yani bir veritabanı lisansından tutun size yeni bir Delphi lisansı aldıracak kadar maliyet söz konusu. Bu maliyet projenin çapıyla değerlendirildiğinde ihmal edilecek kadar da olabilir tersi de.

Sistem basit bir dille şöyle. Sunucu bilgisayardaki projeniz ServerSocket ile mesaj sunucusu haline dönüştürülür. Sonra da veritabanına yapılan her müdahale bu sunucu vasıtası ile tüm istemcilere yayınlanır. Yayınlanan mesajlar dilediğiniz şekilde yorumlanır. OnChange, OnDelete, OnAppend, OnBeforePost olayında sunucudan icazet almadan kayıt girişi bile engellenebilir ve benzeri uygulama geliştirilebilir.

Başarılar dilerim.
Resim
Resim ....Resim
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Muharrem bey kesinlikle size katılıyorum.
Halihazırda Ms SQL Server'daki değişikliklerden haberdar olmamın sağlayacak bir sistem var ve kullanıyorum. Şu makaleden yola çıkarak Extended bi Stored Procedure sayesinde işlem yapabiliyorum.
viewtopic.php?t=19475&highlight=extended

Eğer MS SQL ' ADO.NET 2.0 sayesinde SQLDEPEDENCY adında bir özellik eklenmişse niye kullanmayalım ki?

Sizin dediğiniz yöntem kullanılabilir / verimli bir yöntem . Fakat işin içinde PocketPc olduğunda daha farklı yöntemleri de araştırmak zorunlu hale geliyor.
Eğer BDS 2006 'yı ADO.NET 2.0'a upgrade edebilirsem bu özelliği kullanmak istiyorum.Araştırmalarım devam edecek.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

Söylediklerinizin tümüne katılıyorum. Zaten hemen eklemiştim, halihazırda olan özellik esastır.

Projeniz hakkında fikrim olmadığından ilk aklıma gelen durum olan sıfırdan yeni bir projeye kolları sıvamak ve onun için yapılan etüd gibi değerlendirdiğimden basitten türeyen fikrimi yazdım.

Sonucu buradan yayınlarsanız merakla bekleyenlerden birisi de benim. Başarılar.
Resim
Resim ....Resim
kahraman1285
Üye
Mesajlar: 360
Kayıt: 10 Nis 2006 09:07

Mesaj gönderen kahraman1285 »

Visual Studio 2005 içinde ADO.NET 2.0 desteği olduğundan VB.Net kullanarak makalennin öngördüğü şekilde bir örnek yaptım .

Visual basic 2005 kodu aşğıda olduğu gibi.
Codegear Delphi for NET 2007 ' yi indiremediğimden deneme yapamadım.

sonuç olarak Visual studio 2005 ile Ms SQL SERVER 2005 üzerinde bulunan tablolarda olan değişiklikler anında farkedilebiliyor.

Fakat INSERT,UPDATE,DELETE olayları farketmiyor tüm değişiklikler anında bildiriliyor.

Aşağıdaki kodu çalıştırmadan önce Sql server üzerinde şu komutu çalıştırmak gerekiyor.

Kod: Tümünü seç

 USE master; 
GO
 ALTER DATABASE databaseadi SET ENABLE_BROKER;
 GO 
 

Kod: Tümünü seç

Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms
Imports System.Data
Imports System.Data.SqlClient


Public Class Form1

    Dim Baglanti As SqlConnection = Nothing
    Dim Komut As SqlCommand = Nothing
    Dim Uyar As SqlDependency = Nothing
    Dim MyAdapter As SqlDataAdapter
    Dim DataTablo As DataTable

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Baglanti = New SqlConnection("Password=1285;Persist Security Info=True;User ID=sa;Initial Catalog=Restoran;Data Source=laptop\sqlexpress")
        If Baglanti.State = ConnectionState.Closed Then
            Baglanti.Open()
        End If

        Komut = New SqlCommand("select sira,kod,salon,masa,konuk,adi from dbo.siparis", Baglanti)
        Uyar = New SqlDependency(Komut)

        SqlDependency.Start("Data Source=laptop\sqlexpress;initial catalog=Restoran;Password=1285;Persist Security Info=True;User ID=sa;")
        AddHandler Uyar.OnChange, AddressOf Uyar_OnChange


        MyAdapter = New SqlDataAdapter(Komut)
        DataTablo = New DataTable()

        MyAdapter.Fill(DataTablo)
        DGVeriler.DataSource = DataTablo
    End Sub

    Private Sub Uyar_OnChange(ByVal sender As Object, ByVal e As SqlNotificationEventArgs)
        MessageBox.Show("YENI VERILER EKLENDI...TAZELEME YAPIN")
    End Sub

End Class
Cevapla