GUI sin

이 문제 때문에 무척이나 애를 먹었다. SQL 2000/2005, Oracle, MDAC 등등 여기저기 자료를 찾아찾아 설치해 봤지만 도저히 안되다가 간신히 해결할수 있었다.

<해결방법>
① 첨부파일 PBOLE105.DLL 를 다운로드 한다.
② 다운로드 받은 파일을 C:\Program Files\Sybase\Shared\PowerBuilder 폴더에 복사한다.
③ Maintenance(patch) 를 적용한다.

간단-_-;

Comment +0

OS : Microsoft Windows Vista Enterprise x86, Microsoft Windows XP SP3
PB : Sybase PowerBuilder 7,8,9,10
DB : Microsoft SQL 2000, 2005

Error Message :
Unable to load the requested Database interface. Please make sure that both the interface and client software are properly installed


Database Profiles 에서 MSS Microsoft SQL Server 를 추가 할려고 하면 위와 같은 메시지가 나타날 수 있다.

<해결 방법>
① System C:\Program Files\Sybase\Shared\PowerBuilder 폴더에 dll을 확인한다.
본인의 경우 NTWDBLIB.DLL 파일을 System32 폴더에,
PBMSSXX.DLL(XX의 숫자는 파워빌더의 버전) 파일을 C:\Program Files\Sybase\Shared\PowerBuilder 폴더에 넣어주었다. (http://www.sybase.com/detail?id=47750)


② System32 폴더와 C:\Program Files\Sybase\Shared\PowerBuilder 폴더가 정상적으로 [환경변수] path 에 설정 되어 있는지 확인하고 없으면 추가해준다.(윈도우7 x64 의 경우 C:\Windows\system 에 넣어준다.)


ntwdblib.2282.rar

 


Comment +0

//전달(BeforeMonth)
cTempMonth = Left(cPayMonth, 4) + '/' + Right(cPayMonth, 2) + '/01'
cBeforeMonth = String(RelativeDate(Date(cTempMonth), -1), 'yyyymm')

Comment +0

Question

사진 파일을 DataBase(blob)에 저장을 해두었습니다. 근데 사진을 올릴때 확장자가 다른 사진들이 함께 들어가있습니다. (JPG, BMP, GIF 등등) 모든 사진을 특정 디렉토리에 내려받았는데(모든 확장자를 JPG로), 어떤 것은 보이고 어떤 것은 보이지 않고 해서 알고보니 확장자의 문제더군요. 일일이 수정하기 힘들어서 이렇게 질문을 합니다.



Answer

일반적으로는 이미지를 DataBase에 저장할 때 확장자나 파일의 이름을 다른 컬럼으로 저장을 합니다. 그런 방식으로 안되어 있으시다면 다음과 같은 방법을 적용해 보는건 어떠실런지요. 이건 정석이 아니라 말씀드리기 좀 그렇지만 이런 편법적인 방법이라도 도움이 되실까해서 답변 드립니다.
*.BMP, *.GIF, *.JPEG 파일들을 일반 Editor(UltraEditor, EditPlus)에서 열어 보시면, 가장 첫 문자로 공통적으로 찍히는 부분이 있을 것입니다. BMP일 경우 BM, GIF일 경우 GIF, JPEG 파일은 깨진 이상한 문자가 보이네요. SELECTBLOB 으로 읽어낸 데이터의 첫 2자리를 잘라서 BM인지, GI인지 이 둘다 아닌경우는 JPEG가 됩니다. 이런식으로 처리를 해보시는건 어떠실런지요. SELECTBLOB 으로 읽어서 INTO한 변수를 BlobMid() 함수로 두자리를 잘라서 비교를 해보는 것이지요. 적용시켜 보십시오.


Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Int loops, k, li_complete
Long bytes_read, lgth, ncnt
Blob b, imagedata, imagedata2
String ls_version, cDate, cTime, ls_path, file_path

cDate = String(Curday(), 'yyyymmdd')
cTime = String(Curday(), 'hhmmss')

// 사진파일을 resource폴더에 write
ls_path = cgResourceDir + "\TEMP\"
file_path = ls_path + arg_filename

// 파일읽을 횟수
IF arg_filelength > 32765 THEN
    IF Mod(arg_filelength, 32765= 0 THEN
        loops = arg_filelength / 32765
    ELSE
        loops = (arg_filelength / 32765+ 1
    END IF
ELSE
    loops = 1
END IF

// 파일읽기
FOR k = 1 TO loops
    bytes_read = FileRead(arg_fnum, b)
    imagedata = imagedata + b
NEXT

// Blob 변수에 제대로 들어갔는지 크기로 확인
lgth = Len(imagedata)

// 사진 확장자 오류 확인
IF ( String(BlobMid(imagedata, 12)) = 'BM' OR String(BlobMid(imagedata, 12)) = 'GI' ) AND Upper(arg_compmode) = 'JPG' THEN
    MessageBox('오류','잘못된 사진 파일 입니다. 확인하시고 다시 시도해주세요.')
    RETURN 0
END IF

// 이하 생략...
cs


아주 간단하게 System에 적용시켜보았다. 이걸 몰라서 하루 종일 책을 찾아봤더니 조금 억울하네. (ㅠ_ㅜ)흑~


Comment +0


연 나이/만 나이 란?

'연나이'란 현재연도에서 출생연도를 뺀 나이, 즉 생년월일이 83년 12월 1일인 사람의 경우 2002년이 되기만하면 연나이로 19세가 된다. 하지만 만 나이로는 2002년 12월1일 이 지나야 19세가 되는 것이다. '만나이'개념으로 하면 같은 83년생이라도 생일이 지났냐 안지났냐에 따라 성년/미성년이 가려졌으나, '연나이'로 하면 같은 해에 태어난 사람은 똑같이 미성년이 되거나 성년이 된다.



생일이 지났을 경우 만 나이 = 현재 연도 - 태어난 연도
생일이 지나지 않았을 경우 만 나이 = 현재 연도 - 태어난 연도 - 1



< 스트립트 >
IF ( long(string(curday(),'mmdd')) >  long(mid(birth_date , 5, 4)),
string(long(string(curday(),'yyyy')) - long(mid(birth_date , 1, 4))) + '세',
string(long(string(curday(),'yyyy')) - long(mid(birth_date , 1, 4)) - 1) + '세' )

Comment +0

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//clicked() script

STRING cConKind, cRegion, cRoomType, ls_newsql
DataWindowChild dwc  

Choose Case dwo.name

    //콘도이용지역 
    Case 'region'
    
        This.AcceptText()  
        cConKind = This.GetItemString(This.GetRow(), 'con_kind')
        
        This.getchild('region', dwc)  // dcode
        dwc.SetTransObject(SQLCA)
        
        ls_newsql = " SELECT datachkd.dcode,         " + &
                    "        datachkd.dname,         " + &
                    "        datachkd.hcode,         " + &
                    "        datachkd.dname1,        " + &
                    "        datachkd.dvalue,        " + &
                    "        datachkd.hdcode,        " + &
                    "        datachkd.relate_code1,  " + &    
                    "        datachkd.relate_code2,  " + & 
                    "        datachkd.fix_code1,     " + &
                    "        datachkd.fix_code2      " + &
                    "   FROM datachkd                " + &
                    "  WHERE datachkd.hcode = 'H753' " + &
                    "    AND datachkd.relate_code1 like '"+ cConKind +"'"  
        
        dwc.SetSqlSelect(ls_newsql)    
        dwc.Retrieve() 

End Choose
cs


Comment +0