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로 만들지는 잘 생각해보시고 결정 하세요.

 

 

Posted by Hwanggoon
,