T-Sql COM desteği mevcuttur. Ancak, yetkilendirilmesi, hata yakalama rutinlerinin kontrolü oldukça zahmetli ve zordur. Yapısı nedeniyle tüm metodları çalıştıramaz, örneğin Logo Objects için konuşacak olursak ProductionApplication nesnesi altındaki metodlar bu tip kullanıma uygun değildir.
Kısacası yeni bir projeye Objects'i T-Sql ile kullanarak başlamanızı tavsiye etmem.
DECLARE @object int
DECLARE @cari int
DECLARE @hr int
DECLARE @property varchar(255)
DECLARE @return varchar(255)
DECLARE @src varchar(255), @desc varchar(255)
DECLARE @PostErr VARCHAR(10)
DECLARE @BAGLANTI VARCHAR(10)
DECLARE @AKTIF_PERIYOD INT,
@HATA INT,
@HATAST VARCHAR(1000),
@VERS VARCHAR(200)
-- Create an object.
EXEC @hr = sp_OACreate 'UnityObjects.UnityApplication', @object OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 1,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
-- Call a method.
EXEC @hr = sp_OAMethod @object, 'Login(LOGO,"",1)', @BAGLANTI OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 2,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
--SELECT @BAGLANTI AS BAĞLANTI
IF @BAGLANTI = 'FALSE'
BEGIN
EXEC @hr = sp_OAMethod @object, 'getLastError', @HATA OUT
EXEC @hr = sp_OAMethod @object, 'getLastErrorString', @HATAST OUT
SELECT @HATA AS [Login Hata Numarası], @HATAST AS [Login Hata Mesajı]
END
---------------------------------------------------------------------------------
EXEC @hr = sp_OAMethod @object, 'Version' , @VERS OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 2a,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
SELECT @VERS AS VERSİYON
---------------------------------------------------------------------------------
-- Call a method2.
EXEC @hr = sp_OAMethod @object, 'ActivePeriod' ,@AKTIF_PERIYOD OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 2a,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
SELECT @AKTIF_PERIYOD as AKTİFPERİOD
---------------------------------------------------------------------------------
EXEC @hr = sp_OAMethod @object, 'NewDataObject(30)', @Cari OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 11,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
EXEC @hr = sp_OAMethod @Cari, 'New'
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 12,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
EXEC @hr = sp_OASetProperty @Cari, 'DataFields.FieldByName("ACCOUNT_TYPE").Value', 3
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 13,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
EXEC @hr = sp_OASetProperty @Cari, 'DataFields.FieldByName("CODE").Value', 'SP_Ok'
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 14,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
EXEC @hr = sp_OAMethod @Cari, 'Post', @PostErr OUT
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 15,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
SELECT @PostErr AS [Post Hatası]
-- Destroy the object.
EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
EXEC sp_OAGetErrorInfo @object, @src OUT, @desc OUT
SELECT 4,hr=convert(varbinary(4),@hr), Source=@src, Description=@desc
END
Naci Bey merhaba,
Cevap için teşekkür ederim.
Bunun dışında Sql Clr ile Lobject kullanmanın bir yolu varmıdır?
Cevap vermek için giriş yapmanız gerekmektedir.
Soru sormak için lütfen oturum açınız.
Sql ile Lobject
23/04/17 00:16   Tiger/Logo Object Designer (LOD)Merhaba
Yanlış anlamadıysak katıldığımız bir eğitimde Lobject nesnesinin sql ile bile kullanabileceğini söylemiştiniz.
Sql ile Lobject aracılığıyla fiş aktarabilirmiyiz. Bu konuda örnek bir çalışma varmı?
Lobject