MS-SQL DB 사용자를 위한 배포(Installshield)
Installshield로 배포를 하다 보면 작업 컴퓨터에서는 잘되던 것이(델파이가 깔여있는 컴이죠) 다른 컴에 배포를 해보면 DB와 연동이 되지 않을 경우가 생깁니다.
저도 이제 막 시작하는 델파이 초보라 MS-SQL DB를 쓴 프로젝트를 배포하려고 하다
엄청난 스트레스를 받았습니다.
그래서 게시판에 글도 올리고 했지만 질문이 어리버리 해서 그런지 답변도 올라오지 않더군요.
그래서 책을 찾고 또 찾아 배포 방법을 해결했습니다.
알고 보니 별것도 아니더군요
초보수준이긴 하지만 저처럼 스트레스를 받고 있는 분들에게 조금이나마 도움이 되었으면 하는 바램으로 이렇게 글 올립니다(설명에 질이 좀 떨어지더라도 욕하지 마시길 ^_^)
델파이 사이트를 돌아다니며 게시판에 올라온 글을 찾아보니 여러 가지 의견이 많았습니다. 어떤분이 올린 글의 내용을 보면(제가 가장 많이 참고했던 글이였습니다. 그래서 성공도 했었는데요^^;)
Data Access 컴포넌트에 있는 table이나 query....을 사용해서 DB와 연동 작업을 하셨더군요.
물론 문제는 없습니다. 하지만 하나의 단점은 프로그램이 배포되는 컴마다 ODBC를 설정해야 한다는 단점이 있었지요.(글을 올려주신 분도 그렇게 올려주셨구요)
MS-SQL DB를 사용하는 경우 배포시 해법은 제가 보기엔 Data Access 컴포넌트를 쓰는 것보다 ADO 컴포넌트의 query나 Table...을 쓰는 것이 첫 번째 해결 방법인 것 같습니다.
그리고 두 번째 해법은 OLE를 쓰는거구요...............
그럼 시작 하겠습니다.(저의 설명이 너무 유치하다고 생각하신다면 죄송합니다.)
1. 우선 ODBC 설정을 확인 합니다.
2. 다음은 델파이의 BDE Administrator로 들어가 확인해 봐야겠죠
(ODBC설정이 정확히 끝났다면 BDE Administrator의 구성에도 자동으로 추가되지요.
DATABASE NAME과 USER NAME을 입력합니다.
정확히 연결이 되었다 안되었다는 내용을 입력 후 왼쪽 사각이 되겠죠 여기를 더블 클릭하면 창이 뜨고 Password 물어보죠 입력해서 아무말 없으면 성공 그렇지 안으면 실수죠!)
3. 이제 델파이를 실행 하시구요
(예를 위해 ADOQuery, DataSource, DBgride로...)
4. ADOQuery를 선택후 Object Inspector의 ConnectinSring을 클릭
5. 데이터 연결 속성에서 Microsoft OLE DB Provider for SQL Server를 선택합니다.
(이유는 : 처음에도 말씀 드린 것 처럼 OLE를 쓰지 않으면 배포되는 컴마다
ODBC를 따라 다니며 설정해야 합니다.---------------키 포인트죠^^;)
그리고 SQL에 Query문 써주세요
6. 다음 클릭
연결 속성에서 서버 이름은 가급적 IP로 설정하세요
솔직히 꼭 이라고 말하고 싶습니다만 저는 초보라서 다른 방법이 있을 수 있어
그렇게는 말씀 못 드리겠네요.
7. 여기까지 설정하고 나면 일단 끝이죠
(물론 DataSource, DBgride도 잘 설정하시고요)
8. 이제 문제의 InstallShield Express를 실행시키시고요
다른 부분은 설명하지 않겠습니다.
제 경험으로 보니 Specify InstallShield Objects for Delphi 5 메뉴에서
아래와 같이 설정하시고요
□ BDE(Borland Database Engine)은 선택하지 마세요 절대(에러 나더군요)
좀더 구체적으로 말하면 OLD를 쓰기 때문에 불필요 한건 같더군요- 솔직히 잘 모름.)
9. 위의 8번에서 □ SQL-Links를 선택한 후 오른쪽의 Settings...를 클릭하시고요
다음과 같이 설정해주세요(아마도 □ SQL Links Help Ent도 필요 없을 것 같아요)
10. 이외 다른 부분은 설정 하시고요 테스트 해보세요
실수가 있더라도 참아주시고요 아울러 제 글을 읽어 주셔서 감사합니다.
기타 궁금 하신거 있으면 질문 남겨 주세요
물론 제가 초보기에 초보님들의 질문만 부탁드릴께요
그럼 수고하세요.
아울러 한델자료실에 이미지를 넣어 설명한 부분이 있습니다.