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ı ?
Sqldependency nedir diye merak edenler için konuyla ilgili bir makale:
http://www.csharpnedir.com/makalegoster.asp?MId=391
Herkese Kolay gelsin?
BDS 2006'da ADO.NET 2.0 desteği yapılabilir mi?[Çözüldü]
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
BDS 2006'da ADO.NET 2.0 desteği yapılabilir mi?[Çözüldü]
En son kahraman1285 tarafından 16 Oca 2008 09:21 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
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.
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.
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
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.
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.
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.
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.
-
- Üye
- Mesajlar: 360
- Kayıt: 10 Nis 2006 09:07
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.
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