모두 아시다시피, VBScript에서는 Data Type이 존재하지 않습니다.
기본적으로 모든 Data는 [Variant] Type입니다.
VBA와도 조금 다르네요...

하지만, 대다수의 Class들은 "CreateObject" 키워드를 통해 사용은 가능합니다.

Dim obj
Set obj = CreateObject("ADODB.Recordset")

하지만, DB를 핸들링하는 데 많이 사용하는 ADODB.Command는 사용이 불가능합니다.

그래서, ADODB.Recordset를 통해야 하는 데요.
String(문자열)로 Query를 작성하는 데서, 꽤나 애를 먹었습니다.

그래서 정리했습니다 ^^;

Dim strQuery
Dim objRs
‘ EXECUTE가 아닌 ‘EXEC’를 사용한다. 'EXECUTE'를 사용하면 아니 아니 아니됩니다~~
strQuery = "EXEC " & STORED_PROC_NAME
‘ Number(Int, Float)등의 변수는 그냥 문자열로 변환 후에 할당해주면 됩니다.
strQuery = strQuery & " @PARAM1 = " & INT_VALUE
‘ 하지만 STRING 변수는 따옴표(‘)로 묶어주며, 다수의 변수를 요구하는 SP의 경우, 쉼표(,)로 구분하면 됩니다.
strQuery = strQuery & ", @PARAM2 = '" & STR_VALUE & "'"

Set objRs = CreateObject("ADODB.Recordset")
' 찾다가 찾다가 가장 승질 뻗친 부분인데요, 옵션을 아무것도 넣어주면 안됩니다. Default로 된 것을 넣어줘도 안되었던 기억이 있네요.
' 그냥 아무 옵션을 걸지말고 해야합니다.
objRs.Open strQuery, dbConn
Set objRs = Nothing

위에 주석으로 설명을 했습니다. ^^;

이것 때문에 한참을 고생했드랬습니다.

VBScript는 다뤄보질 않아서, 그냥 VBA와 비슷하겠거니라고 하고, 뎀볐는 데.... 이상한 곳에서 많이 막혔었네요;;

테스트 환경도 없고, 디버깅....은 어찌하는 지 몰라서, 그냥 VBA에 대놓고 코딩을 했었거든요.
몇 가지 차이점만 주의하면, VBA에서 코딩하고 테스팅해서 올리면 바로 되긴 합니다. ^^

조만간 VBScript를 작성하며, 생긴 노하우에 대해서 포스팅해보겠습니다.ㅎㅎ


덧.
아..이 개발은 웹이 베이스가 아니었습니다.
MS-SQL SERVER에 DTS(Data Transfer Service)라고 있는 데, 여기에 들어갈 서비스를 수정하는 것을 맡았었거든요.
웹이 베이스라면, 무언가를 뿌려보고 해서(C에서의 printf와 같이....) 수행 단계를 확인이나마 할 수 있었을 텐데요;;
모 별 수 없이. DB Table에 Step 데이터를 뿌려서, 그걸 확인하며 했었네요;;
여튼 이 부분은 곧! 정리해서 포스팅 하겠습니다.

'배움 > VBScript' 카테고리의 다른 글

VBScript에서 STORED PROCEDURE 사용하기  (0) 2012.03.19

순간 나를 당황하게 만든 서식

잔말말고 그것이 무엇인지 확인!!!



흐음...저 "부분/문자열"이라는 문자열은 하나의 셀에 있는 값입니다.
테두리를 보이게 할 걸 그랬네요..^^;

모...아는 게 아니니, 일단 구글링...으로 솔직히 별 어렵지 않게 찾았습니다.
  + 갈수록 검색시의 키워드 선택 감각이 발전하는 듯 합니다. 캬캬~
검색해서 찾은 게 아래의 코드 입니다.

With TargetCell.Characters(Start, Len(TargetWord)).Font 
    If IsNull(FontName) = False Then .Name = FontName 
    If IsNull(FontBold) = False Then .Bold = FontBold 
    If IsNull(FontSize) = False Then .Size = FontSize 
    If IsNull(FontColor) = False Then .ColorIndex = FontColor 
End With 
Url: http://www.vbaexpress.com/kb/getarticle.php?kb_id=743

대충 보시면, Cell 객체 안에 Characters라는 객체가 존재합니다. 그리고 Characters라는 객체는 왠지 문자열에 대한 객체일듯 하구요. 코드는 TargetCell이라는 Cell에 포함된 Characters 문자열의 Start부터 Len(TargetWord)까지의 Font를 설정해주는 코드네요. 당연스럽게 TargetWord는 실질적으로 TargetCell.Characters와 동일하겠죠.

 + VBA(Excel이든, word 든)에서는 객체라는 용어를 사용하기가 개인적으로 좀 애매합니다. VBA에서 Class를 제공하기는 하지만, 동작하는 것을 보면, 우리가 일반적으로 사용하는 C++, JAVA 등에서의 Class와는 사뭇 다른 느낌이 나거든요. 기회가 되면, 이에 대해서 썰을 한 번 풀어보도록 하겠습니다.

제가 할 것은 붉은 색으로 된 [부분/문자열]에서 [/문자열]만을 검정색으로 변경해주는 것 입니다.
   # 헙;; 위의 요구사항 예시를 잘못 만들었네요.ㅋㅋ

With ThisWorkbook.Sheets("Sheet1")
    Dim i As Integer
    For i = 0 To rowOffset
        Dim index As Integer
        Dim target As String
        target = .Range(START_CELL).Offset(i, 5).Value
        index = InStr(1, target, "/")
        If index > 0 Then
            .Range(START_CELL).Offset(i, 5).Characters(index, Len(target)).Font.Color = RGB(0, 0, 0)
        End If
    Next i
End With
코드는 간단합니다. 원하는 Cell의 문자열에서 "/"의 위치를 찾고 존재한다면, "/"부터 끝까지를 검정색으로 설정!
부분문자열에 대한 font 핸들링은 Cell에서 Characters 객체를 이용하시면 됩니다!!!



개인적으로 가장 좋아하는 노무현 대통령님의 동영상 중에 하나 입니다.

책임을 회피하기 위한 변명만을 일삼는 공무원들의 자세를

강력하게 비판하면서 일침하시던 모습!!!

너무너무너무 그립습니다.