iDE Soft

sql connection

  Tiger/Logo Object Designer (LOD) 2.57

Merhaba,


LOD ile baska bir serverde olan sqle baglanarak veri ceke bilirmiyim?

Mumkunse bununla ilgili bir numune vere bilirmisiniz?


tesekkurler.




Tarkan VURAL

Onaylanmış Cevap

Merhaba,

Logonun bulunduğu SQL sunucusunda, Server Object bölümünden Linked Server olarak diğer sunucuyu tanımlarsanız, query sorgularınızı 

linkedserverdatanımladığınızsunucuadı.databaseadı.dbo.tabloadı şeklinde oluşturarak yapabilirsiniz. 


Join örneği:

SELECT * FROM LG_001_CLCARD CLC

LEFT OUTER JOIN LINKEDSERVERDAKISUNUCUADI.VERITABANIADI.DBO.CARILER

ON CLC.LOGICALREF=C.CARIREFERANS


Her iki sunucunun da Server Collation dil türünün aynı olması gerek. Aksi halde tablo adlarına ilave olarak collate Default_Database gibi bir tanım daha eklemelisiniz. 


İki ayrı sunucu arasındaki haberleşme işlemlerinin başarısını önce SQL tarafında test etmenizi öneririm. 


Logo SQL sunucusu tarafında açacağınız bir query ile diğer sunucuya sorgu deneyiniz. 

Örnek:

SELECT * from LINKEDSERVERDAKISUNUCUADI.VERITABANIADI.DBO.CARILER



 Kolay gelsin. 


23/08/19 13:42


Kişi bilgileri gizlidir. Logo çalışanları görebilir.

2. Bir yöntem de ADO ile yapabilirsin


 conn = OLEObject("adodb.connection")
 rs = OLEObject("adodb.recordset") 
 sSQL = "select top 150 isnull(tc,'') as tc, isnull(ad,'') as ad, isnull(soyad,'') as soyad, isnull(anne,'') as anne, isnull(baba,'') as baba"
 sSQL1= " from CARITABLO ') "
 conn.Mode = 3
 conn.ConnectionTimeout = 30
 conn.CommandTimeout = 40
 conn.Open ("Provider=SQLOLEDB.1;Password="+UPass+";Persist Security Info=True;User ID="+UName+";Initial Catalog="+DBName+";Data Source="+DBSrv) 
 rs.ActiveConnection = conn
 rs.CursorLocation = 3
 rs.LockType = 4
 rs.CursorType = 3
 rs.Open(sSQL+" "+sSQL1, conn)
 KGrid="LisGrid"
 I=0
 do while (rs.EOF=false)
 InsertGridRow(KGrid, i)
 SetMGridRow(KGrid, i) 
 SetCellText(KGrid, i, 10009, rs.Fields.item[5].value)
 SetCellText(KGrid, i, 10001, rs.Fields.item[0].value)
 SetCellText(KGrid, i, 10002, rs.Fields.item[1].value)
 .......
 InvalidateGrid(KGrid)
 RefreshControl(KGrid, 1) 
 rs.MoveNext()
 loop 
 rs.close
 conn.close
 RestoreCursor()
 end if







19/09/19 15:24

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