Maxscript로 DB에 접근하기
Maxscript로 DB에 접근하기 위해서는 DotNet을 사용해야 합니다.
상세히 설명하려면 너무 길어지니 간단한 예제를 보면서 이해해 봅시다.
예제)
connectionString = "" \
+ "Data Source=" + "1.1.1.1,1433" + ";" \
+ "Initial Catalog=" + "MaxScriptLog" + ";" \
+ "Integrated Security=" + "False" + ";" \
+ "User ID=" + "hwanggoon" + ";" \
+ "Password=" + "hgpw" + ";" \
+ "Connect Timeout=" + "15" + ";" \
+ "Encrypt=" + "False" + ";" \
+ "TrustServerCertificate=" + "False"
-- DB에 Log 남기기 --
userName = "hwanggoon"
scriptName = "Yamette"
scriptNumber = "Ne-12xxx"
dno_SqlConnection = dotNetObject "System.Data.SqlClient.SqlConnection" connectionString
dno_SqlConnection.Open()
-- "Log"는 DB에 있는 함수라고 생각하면 편합니다. 이건 DB를 만드는 분과 상의 하세요.
dno_SqlCommand = dotNetObject "System.Data.SqlClient.SqlCommand" "Log" dno_SqlConnection
dno_SqlCommand.CommandType = dno_SqlCommand.CommandType.StoredProcedure
-- "@User"값 또한 DB에 있는 형태
dnc_SqlDbType = dotNetClass "System.Data.SqlDbType"
dno_SqlParameter = dno_SqlCommand.Parameters.Add "@User" dnc_SqlDbType.NVarChar
dno_SqlParameter.Value = userName
dno_SqlParameter = dno_SqlCommand.Parameters.Add "@Section" dnc_SqlDbType.NVarChar
dno_SqlParameter.Value = scriptName
dno_SqlParameter = dno_SqlCommand.Parameters.Add "@Content" dnc_SqlDbType.NVarChar
dno_SqlParameter.Value = scriptNumber
dno_SqlCommand.ExecuteNonQuery()
dno_SqlConnection.Close()
-- DB에 Log 받아오기 --
dno_DataTable = dotNetObject "System.Data.DataTable" -- Log가 담길 테이블
dno_SqlConnection = dotNetObject "System.Data.SqlClient.SqlConnection" connectionString
dno_SqlConnection.Open()
dno_SqlCommand = dotNetObject "System.Data.SqlClient.SqlCommand" "ShowLog" dno_SqlConnection
dno_SqlCommand.CommandType = dno_SqlCommand.CommandType.StoredProcedure
dnc_SqlDbType = dotNetClass "System.Data.SqlDbType"
dno_SqlParameter = dno_SqlCommand.Parameters.Add "@User" dnc_SqlDbType.NVarChar
dno_SqlParameter.Value = userName
dno_SqlParameter = dno_SqlCommand.Parameters.Add "@Section" dnc_SqlDbType.NVarChar
dno_SqlParameter.Value = scriptName
dno_SqlDataAdapter = dotNetObject "System.Data.SqlClient.SqlDataAdapter" dno_SqlCommand
dno_SqlDataAdapter.Fill dno_DataTable
dno_SqlConnection.Close()
DB의 구조에 따라 접근하는 코드가 달라질 수 있습니다.
DB의 구조는 프로그래머와 상의해서 구성하시면 되는데요.
DB 함수도 만들어 보고 싶은 분은 해보셔도 괜찮습니다.
(그리 어렵지 않습니다.)
DLL을 로드 한 후 DLL을 수정하려면 맥스를 다시 실행 해야해서 DLL를 만들지 않고 Maxscript로 접근 했습니다.
(파일이 열려 있어 삭제, 덮어쓰기, 갱신이 안됨)
그런데 Maxscript로 작성하는 것 자체가 스트레스로 다가오기도 합니다.
Dll로 만들지 Maxscript로 만들지는 잘 생각해보시고 결정 하세요.
'Max' 카테고리의 다른 글
손목 Twist Bone의 Flip현상 최소화 하기(LookAt 2개 사용) (0) | 2014.05.28 |
---|---|
Maxscript 스레드를 분리해서 만들기(Multi Thread) (0) | 2014.05.21 |
바이패드 트라젝토리(biped trajectory) 활성화 하기 (0) | 2014.03.18 |
은면제거(Hidden Surface Deleter) (0) | 2013.12.24 |
맥스안에 있는 에디터 창이 안 보일 때 (0) | 2013.12.12 |