ERP Nedir? | Türkiye'nin ERP Forum Platformu Ana Sayfa
Forum Anasayfa Forum Anasayfa > SQL > SQL Veri Tabanı İşlemleri
  Aktif Konular Aktif Konular RSS - 3.party uygulamada collation sorunu
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

ERP Nedir? Enterprise Resource Planning nasıl çalışır? İş süreçleri ile ilgili tüm soru ve cevapları ERPNe.org'da.

Ülkemizde hızla gelişmekte olan ERP yazılım sektörümüzün, Yerli ve Yabancı ERP işlemlerinin tanıtımı ve kullanıcılarının buluşma noktası olması hedefiyle kurulan sitemize hoş geldiniz.

Ülkemizdeki Ne.org konseptinde bir ilk olarak yayın hayatına başlayan ERPNe.org, Kurumsal Kaynak Planlaması yazılımlarını kullananların bilgi kaynağı/Portal olmak amacı ile kurulmuştur.

Genellikle yurt dışında büyük üreticiler tarafından geliştirilen SQL, Delphi, ASP, CSharp gibi teknolojilerin anlatıldığı sitelerin kullandıkları (WhatisSQL, WhatisASP) (Ülkemizde Netsis Nedir, Mikro Nedir, SAP Nedir yada Logo Nedir gibi kullanıcı sorularına) Ne ve nedir konseptinde yeni bir açılım olmasını da hedefleyen ERPNe.ORG' un, ülkemizin uluslararası ERP sektörü içinde hak ettiği yeri almasında ve ERP ürünlerini kullananların bir araya gelerek Yerli ERP'nin gelişmesine katkı sağlayacakları önemli bir kilometre taşı olacağı düşüncesindeyiz.


3.party uygulamada collation sorunu

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
erdal_sert Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 14 Ocak 2008
Konum: İstanbul
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı erdal_sert Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: 3.party uygulamada collation sorunu
    Gönderim Zamanı: 14 Ocak 2008 Saat 15:39
Selamlar,
 
Netsis databse'ine 3. party uygulama yazan varmi acaba ?
Bu collation çok dert oluyor basima, söyleki;
 
VS.NET 2005 ve c# kullaniyorum, connection için sqlclient kullanirsam okudugum datadaki Türkçe karakterler bozuk geliyor.
I ler Ý
S ler Þ
G ler Ð
olarak dönüyor.
 
Eger OleDb ( auto translate=false paremetresi ile) kullanirsam Türkçe karakterleri düzgün aliyorum fakat bu seferde yazarken ç leri c ve s leride s olarak yaziyor.
 
bende gittim yeni bir database yarattim ama Türkçe de sorun olmasin diye collation'u Turkish_CI_AI yaptim. ve Trigger'lar ile greken datalari netsis database'in den bu yeni database tasidirm.
Fakat bu seferde trigger lar bu Turkish_CI_AI  databse'ine yazarken türkçe karakterler
I ler Y ye
S ler ?  ye
dönüsüyor.
 
sql server gruplarina sordum, kullandiginiz makinenin bölgesel ayarlarina bakin dediler onuda denedim gene ayni sorun var.
Hem Türkçe hem Ingilizce  XP kurulmus client makinelerde denedim gene aynisey oldu.
 
 
Ne yapmak lazim ?
 
Yorumlarinizi bekliyorum ...
 
NOT: Bir örnek ekran resmi ekliyorum.
TBLSTSABIT  tablosundan select edilip gird'e bound edilmis halidir...
 
 


Düzenleyen erdal_sert - 14 Ocak 2008 Saat 16:23
Yukarı Dön
emiray Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 11 Nisan 2007
Durum: Aktif Değil
Puanlar: 39
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı emiray Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 16:40
evet dogru söylüyorsunuz, bu sorunu ancak asci karakter kodlarini göstererek çözebilirsiniz. Bölgesel ayarlarla alakasi yok. Netsis bu isi trigerle çözüyor
netsis bir tutkudur.Yaşamak Lazım
Yukarı Dön
erdal_sert Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 14 Ocak 2008
Konum: İstanbul
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı erdal_sert Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 16:54
emiray Selam,
 
Dedigini tam anlayamadim, yani mesala stok karti açilirken stok adi string'ini parse edip I gördügün yere sunu yaz yada G gördügün yere sunu yaz gibi bir trigger mi var ?
----
Ben simdi TBLSTSABIT tabolusunun trigger larina bakiyorum, o tür bir replace islemi göremedim.
 
Eger öyle bir islem olsa TBLSTSABIT'in insert trigger larinda olurdu diye düsünüyorum.
o tabloda for insert için sadece NTR_STSABITI trigger'i var, onun içinde de o tür bir degisim yok.
 
Acaba dedigin gibi bir (ben yanlis anlamadiysam) replace islemini varsa, exe'nin içinden yapiyor olabilirler mi ?
 
Ne dersin ?
 
 
 
Yukarı Dön
(sa) Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 24 Mart 2007
Konum: izmir
Durum: Aktif Değil
Puanlar: 9
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı (sa) Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 17:27
selam
ornek bir trigger olmasi lazim.
bulursam gondereyim ustad
 
(sa)
Yukarı Dön
emiray Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 11 Nisan 2007
Durum: Aktif Değil
Puanlar: 39
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı emiray Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 17:48
netsis database nin altinda çalisan bir triger var.
çalisma sekli ise söyle ekrandan girilen Türkçe karakterler database islenirken farkli karakterler isleniyor excel e dis veri al yada 3.party yazimla datalar çagrildigi zaman database deki hangi karakterle yazili ise o sekilde ekrana geliyor. netsis de islem yaparken yada rehber çalistirildigi zaman bu triger çalisiyor ve S - I - G lerin yerini tutan farkli asci karakterleri Türkçe harfe dönüstürüyor. degisen bu türkçe karakterlerin asci kodlarini göstererek yapiliyor.
örnegin: S nin karsiligi 1150
netsis bir tutkudur.Yaşamak Lazım
Yukarı Dön
erdal_sert Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 14 Ocak 2008
Konum: İstanbul
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı erdal_sert Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 17:57
Netsis database nin altinda çalisan bir triger dediginin adini biliyormusun ?
Bin inceliyeyim bakalim.
 
Bu arada bu replace islemi performani etkilemiyormu arkadaslar ?
 
Yeni 2000 stokkartinin hareketlerini dökerken trigger'lar ile bile olsa  bu replace aglatmazmi, ne dersiniz ?
 
Bu bahsetiginiz trigger i çok acil sizden alabilirsem  yada netsis database'in den bulabilirsem çok memnun olacagim.
 
 
script olarak gönderebilirseniz erdNOKTAsert deki NOKTA yi . ile degistirip gmail'e gönderebilirsiniz.
 
Wink 
 


Düzenleyen erdal_sert - 14 Ocak 2008 Saat 18:04
Yukarı Dön
emiray Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 11 Nisan 2007
Durum: Aktif Değil
Puanlar: 39
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı emiray Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 18:09
ilgili sirketin altinda programmability var onun altinda functions altinda scalar-valued functions nin altinda dbo.TRK var türkçe karakter sorununu iste bu function hallediyor
netsis bir tutkudur.Yaşamak Lazım
Yukarı Dön
emiray Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 11 Nisan 2007
Durum: Aktif Değil
Puanlar: 39
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı emiray Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 18:10
dbo.TRK
/****** Object: UserDefinedFunction [dbo].[TRK]    Script Date: 01/14/2008 18:05:19 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[TRK](@A NVARCHAR(4000))
RETURNS NVARCHAR(4000)
AS
BEGIN
DECLARE @TMP NVARCHAR(4000)
SET @TMP = REPLACE(@A COLLATE LATIN1_GENERAL_BIN, CHAR(208), N'Ð')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(220), N'Ü')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'Þ')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), N'Ý')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(240), N'ð')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(254), N'þ')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(105), N'i')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç')
SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(253), N'ý')
RETURN @TMP
END
netsis bir tutkudur.Yaşamak Lazım
Yukarı Dön
erdal_sert Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 14 Ocak 2008
Konum: İstanbul
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı erdal_sert Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 18:22
emiray ,
 
Çok sagolasin.
 
Sana bir kahve borcum var bira'da olabilir.
 
(sa) 'i da unutmadim tabi onada borçlandim...
 
Wink
 
Yukarı Dön
erdal_sert Açılır Kutu İzle
Üye
Üye
Simge

Kayıt Tarihi: 14 Ocak 2008
Konum: İstanbul
Durum: Aktif Değil
Puanlar: 0
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı erdal_sert Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 14 Ocak 2008 Saat 19:11
Arkadaslar birseyi anlayamadim bu trigger'da.
Simdi @A param'i ile gelen string'i aliyor ve bazi karakterleri replace ediyor.
Ama ;
REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'Þ')
simdi burada CHAR(222) yi , 'Þ' ile replace ediyoruz ama zaten 'Þ' isaretinin ascii karakter kodu 222'dir.
Yani biz 'Þ' yi gene 'Þ' ile degistirmis olmuyormuyuz ? oysa 'S' ile degistirmek lazim.
 
simdi mesala ben su query'i çalistirdim.
SELECT dbo.TRK('NÝKEL ZÝNCÝR')
-------------------------------------------------
NÝKEL ZÝNCÝR
(1 row(s) affected)
 
Dönende dogal olarak ayni oldu.
 
Yani benim select cümlemde TRK fonksiyonunu kulanmam birsey degistirmeyecek.
Acaba ters fonksiyon mu yazmak lazim, yani
REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'S')
REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), N'I')
gibi ...?
 
benmi birseyi gözden kaçiriyorum ?
 
Yukarı Dön
AyGuMuS Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 29 Nisan 2007
Konum: Ankara
Durum: Aktif Değil
Puanlar: -5
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı AyGuMuS Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 16 Ocak 2008 Saat 12:04
Bunun için Connection nesnesinin Property lerinden halledebilirsin...
SA
Yukarı Dön
AyGuMuS Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 29 Nisan 2007
Konum: Ankara
Durum: Aktif Değil
Puanlar: -5
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı AyGuMuS Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 16 Ocak 2008 Saat 12:07
illede SQL le halldecem dersen NETSIS in yazdigi Fonksiyonu kendine uyarla...
 

CREATE FUNCTION [dbo].[TRK_CEVIR](@A NVARCHAR(4000))

RETURNS NVARCHAR(4000)

AS

BEGIN

DECLARE @TMP NVARCHAR(4000)

SET @TMP = REPLACE(@A COLLATE LATIN1_GENERAL_BIN, CHAR(208), N'G')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(220), N'Ü')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'S')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), N'I')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(240), N'g')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(254), N's')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(105), N'i')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç')

SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(253), N'i')

RETURN @TMP

END

SA
Yukarı Dön
AyGuMuS Açılır Kutu İzle
Kidemli Üye
Kidemli Üye
Simge

Kayıt Tarihi: 29 Nisan 2007
Konum: Ankara
Durum: Aktif Değil
Puanlar: -5
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı AyGuMuS Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Gönderim Zamanı: 16 Ocak 2008 Saat 12:18
Orjinalini yazan: erdal_sert erdal_sert Yazdı:

Eger OleDb ( auto translate=false paremetresi ile) kullanirsam Türkçe karakterleri düzgün aliyorum fakat bu seferde yazarken ç leri c ve s leride s olarak yaziyor. 
 
Bunu yaptigin zaman düzgün olarak gelmesi gerekir. Çünkü ben bu sekilde yapiyorum. Eger dedigin gibiyse aklima PC nin Bölgesel ayarlarina göre çeviriyor demek geliyor. bide ona bak istersen onu Türlkçe yap.
SA
Yukarı Dön
 Yanıt Yaz Yanıt Yaz
  Konu Paylaş   

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 11.10
Copyright ©2001-2017 Web Wiz Ltd.

Bu Sayfa 0,564 Saniyede Yüklendi.