전역에 직접 액세스하려는 경우 저장 프로 시저를 만들 수 있습니다. 이렇게하기 전에 보안 의미를 고려해야합니다. 전역에있는 모든 데이터가 ODBC 액세스 권한이있는 모든 사용자에게 노출됩니다.
다음은 최대 9 개의 전역 첨자 값과 해당 노드의 값을 반환하는 저장 프로 시저의 예입니다. 필요한 경우 쉽게 수정할 수 있습니다.
Query OneGlobal(GlobalName As %String) As %Query(ROWSPEC = "NodeValue:%String,Sub1:%String,Sub2:%String,Sub3:%String,Sub4:%String,Sub5:%String,Sub6:%String,Sub7:%String,Sub8:%String,Sub9:%String") [SqlProc]
{
}
ClassMethod OneGlobalExecute(ByRef qHandle As %Binary, GlobalName As %String) As %Status
{
S qHandle="^"_GlobalName
Quit $$$OK
}
ClassMethod OneGlobalClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = OneGlobalExecute ]
{
Quit $$$OK
}
ClassMethod OneGlobalFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = OneGlobalExecute ]
{
S Q=qHandle
S Q=$Q(@Q) b
I Q="" S Row="",AtEnd=1 Q $$$OK
S Depth=$QL(Q)
S $LI(Row,1)=$G(@Q)
F I=1:1:Depth S $LI(Row,I+1)=$QS(Q,I)
F I=Depth+1:1:9 S $LI(Row,I+1)=""
S AtEnd=0
S qHandle=Q
Quit $$$OK
}
난 당신이 액세스로부터이를 얻기 위해 코드를 필요는 없지만, 참조를 위해, 당신은 (pyodbc으로) 사용할 수 있습니다 파이썬에서이 액세스 할 수 :
import pyodbc
import win32com.client
import urllib2
class CacheOdbcClient:
connectionString="DSN=MYCACHEDSN"
def __init__(self):
pass
def getGlobalAsOverlyLargeList(self):
connection=pyodbc.connect(self.connectionString)
cursor=connection.cursor()
cursor.execute("call MyPackageName.MyClassName_OneGlobal ?","MYGLOBAL")
list=[]
for row in cursor :
list.append((row.NodeValue,row.Sub1,row.Sub2,row.Sub3,row.Sub4,row.Sub5,row.Sub6,row.Sub7,row.Sub8,row.Sub9))
return list
출처
2012-03-17 03:28:03
psr
내가 관리로 이동 Portal과 샘플 네임 스페이스 살펴보기 우리에게 전송 된 데이터베이스의 모든 전역을 볼 수 있습니다. 보기를 클릭하여 해당 데이터를 볼 수도 있습니다. 그러나 ODBC 데이터베이스를 사용하여 액세스 데이터베이스 또는 SQL 서버 db로 내보낼 때 테이블 중 아무 것도 표시되지 않습니다. –
매트 - SMP 내부에서 새 데이터베이스가 포함 된 네임 스페이스에 대한 SQL> 스키마 페이지로 이동하십시오. . 전역에서보고있는 데이터를 나타내는 스키마/테이블이 있습니까? 제 생각에 스티븐 (Stephen)은 ODBC 연결을 통해 전역에있는 데이터를 캐쉬 영속 클래스와 연결하여 가시화 할 필요가 있다고 생각합니다. – mccrackend
SQL> 스키마로 이동하여 새 데이터베이스와 함께 네임 스페이스로 이동하면 아무 것도 없습니다. 당신이 말하는 것은 데이터를 저장하는 자체 방법을 알고 있기 때문에 캐시 내부에서 볼 수 있다는 것입니다. 반면 ODBC는 캐시 영구 클래스로 만들지 않는다는 것을 모릅니다. 제가 말씀 드렸듯이, 제가이 시스템으로 일한 것은 이번이 처음입니다. –