Galip Taşracı

Sql ile Lobject

  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


NaciO

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




24/04/17 10:30


Galip Taşracı

Naci Bey merhaba,

Cevap için teşekkür ederim.


Bunun dışında Sql Clr ile Lobject kullanmanın bir yolu varmıdır?


24/04/17 10:56

Cevap vermek için giriş yapmanız gerekmektedir.