이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

7.5. 사설 토토

사설 토토다음이 있습니다ODBC데이터베이스 인터페이스 적어도 일부 플랫폼에서 지원됩니다.사설 토토4.4.2는 다음에서 시연되었습니다. Linux포스트그레SQL7.0 사용 중psqlODBC다음에 포함된 드라이버포스트그레SQL배포.

7.5.1. 구성

사설 토토반드시 액세스할 수 있도록 올바르게 구성되었습니다.포스트그레SQL ODBC소프트웨어 드라이버.

활성화 중사설 토토데이터베이스 액세스

이 지침은 4.4.2 릴리스에 대한 것입니다.사설 토토켜짐리눅스. 참조Linux 시스템 관리자자세한 내용은 온라인 도서를 참조하세요. 자세한 정보입니다.

  1. 수정해야 합니다.axnet.cnf그래서 그elfodbc찾을 수 있습니다libodbc.so(그ODBC드라이버 관리자) 공유 라이브러리. 이 라이브러리는 다음 항목에 포함되어 있습니다.사설 토토배포하지만axnet.cnf수정 필요 올바른 위치를 가리킵니다.

    루트로서 파일을 편집하십시오.applixroot/applix/axdata/axnet.cnf.

    1. 하단에axnet.cnf, 시작하는 줄을 찾으세요 와 함께

      #libForelfodbc /ax/...
      
    2. 읽을 수 있도록 줄 변경

      libFor elfodbcapplixroot/applix/axdata/axshlib/lib

      그것이 말해줄 것이다elfodbc이 디렉토리에서 다음을 찾으려면ODBC지원 라이브러리. 일반적으로애플릭스설치됨 에서/선택따라서 전체 경로 될 것이다/opt/applix/axdata/axshlib/lib하지만 설치한 경우애플릭스그럼 다른 곳에서 그에 따라 경로를 변경하십시오.

  2. 만들기.odbc.ini다음과 같이 설명됨섹션 7.3. 플래그를 추가할 수도 있습니다.

    TextAsLongVarchar=0

    데이터베이스 관련 부분.odbc.ini그래서 텍스트 필드는 다음과 같이 표시됨**BLOB**.

테스트 중사설 토토ODBC 연결

  1. 가르쳐주세요애플릭스 데이터

  2. 다음을 선택하세요포스트그레SQL관심 있는 데이터베이스.

    1. 선택질의-서버 선택.

    2. 선택ODBC그리고 클릭찾아보기. 는 구성한 데이터베이스.odbc.ini표시되어야 합니다. 확인하세요 그호스트:필드는 비어 있음(그렇지 않은 경우,axnet연락을 시도하겠습니다axnet켜짐 데이터베이스를 찾기 위한 다른 머신).

    3. 실행된 상자에서 데이터베이스를 선택하십시오 으로찾아보기다음을 클릭하세요확인.

    4. 로그인 시 사용자 이름과 비밀번호를 입력하세요 식별 대화 상자 및 클릭확인.

    당신은 볼 것입니다elfodbc 시작 중 서버데이터 왼쪽 하단에 창. 오류 대화 상자가 나타나면 디버깅을 참조하세요. 아래 섹션을 참조하세요.

  3. "준비됨"메시지는 데이터 창의 왼쪽 하단에 나타납니다. 이 이제 쿼리를 입력할 수 있음을 나타냅니다.

  4. 다음에서 테이블을 선택하세요질의-테이블 선택를 선택한 다음쿼리-질의데이터베이스에 액세스합니다. 는 표의 처음 50개 정도의 행이 나타나야 합니다.

7.5.2. 일반적인 문제

만들기를 시도하는 동안 다음 메시지가 나타날 수 있습니다.ODBC연결을 통해Applix 데이터:

다음에서 게이트웨이를 시작할 수 없습니다. 서버

elfodbc찾을 수 없음libodbc.so. 확인하세요axnet.cnf.

ODBC 게이트웨이 오류: IM003::[iODBC][드라이버 관리자]지정된 드라이버를 사용할 수 없습니다. 로드됨

libodbc.so다음을 찾을 수 없습니다 드라이버 목록:.odbc.ini. 설정을 확인하세요.

서버: 고장남 파이프

다른 이유로 인해 드라이버 프로세스가 종료되었습니다 문제. 최신 버전이 없을 수도 있습니다.PostgreSQL ODBC패키지.

setuid를 256으로 설정: 실패함 게이트웨이 실행

9월 릴리스사설 토토4.4.1(첫 번째 릴리스 공식적으로ODBCLinux의 지원)은 사용자 이름을 지정할 때 문제를 표시합니다. 길이가 8자를 초과합니다. 문제 Steve Campbell이 제공한 설명().

저자:제공: 스티브 캠벨 (), 1998-10-20

axnet프로그램의 보안 시스템이 조금 의심스러운 것 같습니다.axnet사용자를 대신하여 작업을 수행합니다. 그리고 진정한 다중 사용자 시스템에서는 실제로 다음과 같이 실행되어야 합니다. 루트 보안(각 사용자의 디렉터리에서 읽기/쓰기가 가능함) 그러나 우리는 이것을 추천하기를 주저합니다. 왜냐하면 우리는 그것을 가지고 있지 않기 때문입니다. 이로 인해 어떤 보안 허점이 발생하는지 알 수 있습니다.

7.5.3. 디버깅사설 토토ODBC 연결

연결 문제를 디버깅하는 좋은 도구 중 하나는 유닉스 시스템 유틸리티스트레스.

strace로 디버깅

  1. 시작사설 토토.

  2. 시작스트레스켜짐axnet프로세스. 예를 들어, 만일

    $ ps -aucx | 그렙 도끼
    

    캐리 10432 0.0 2.6 1740 392 ?  일 10월 9일 0:00 axnet
    캐리 27883 0.9 31.0 12692 4596 ?  S 10:24 0:04 도끼

    그럼 실행하세요

    $ strace -f -s 1024 -p 10432
    
  3. 다음을 확인하세요스트레스출력.

    캐리의 메모:많은 오류 메시지 에서사설 토토이동 에stderr, 잘 모르겠습니다. 어디서stderr전송되었으므로스트레스찾는 방법입니다 밖으로.

예를 들어, 다음을 얻은 후할 수 없습니다 서버에서 게이트웨이 실행, 나는 달렸다스트레스켜짐axnet그리고 얻었다

[pid 27947] open("/usr/lib/libodbc.so", O_RDONLY) = -1 ENOENT (해당 파일이나 디렉터리 없음)
[pid 27947] open("/lib/libodbc.so", O_RDONLY) = -1 ENOENT(해당 파일이나 디렉터리 없음)
[pid 27947] write(2, "/usr2/applix/axdata/elfodbc: 'libodbc.so' 라이브러리를 로드할 수 없습니다.\n", 61) = -1 EIO(I/O 오류)

그래서 무슨 일이 일어나고 있는 걸까요?애플릭스 엘포드BC다음을 검색 중입니다.libodbc.so, 찾을 수 없습니다. 그렇기 때문에axnet.cnf변경이 필요합니다.

7.5.4. 실행 중사설 토토데모

다음을 통과하기 위해사설 토토 데이터 튜토리얼, 다음을 수행하는 샘플 테이블을 생성해야 합니다. 튜토리얼은 다음을 참조합니다. 테이블을 생성하는 데 사용되는 ELF 매크로 많은 데이터베이스 열에서 NULL 조건을 사용하려고 시도합니다. 그리고PostgreSQL하지 않습니다 현재 이 옵션을 허용합니다.

이 문제를 해결하려면 다음을 수행할 수 있습니다:

수정 중사설 토토데모

  1. 복사/opt/applix/axdata/eng/Demos/sqldemo.am로컬 디렉토리에.

  2. 이 로컬 사본 편집sqldemo.am:

    1. 검색 대상null_clause = "NULL".

    2. 다음으로 변경하세요.null_clause = "".

  3. 시작Applix 매크로 편집자.

  4. 열기sqldemo.am파일 에서매크로 편집자.

  5. 선택파일-컴파일 및 저장.

  6. 종료매크로 편집자.

  7. 시작애플릭스 데이터.

  8. 선택*-매크로 실행.

  9. 값을 입력하세요sqldemo그러면 클릭확인.

    상태 표시줄에 진행 상황이 표시되어야 합니다. 데이터 창(왼쪽 하단).

  10. 이제 데모 테이블에 접근할 수 있습니다.

7.5.5. 유용한 매크로

당신은 데이터베이스 로그인에 대한 정보를 추가할 수 있으며 표준에 대한 비밀번호애플릭스시작 매크로 파일. 이것은 예~/axhome/macros/login.am파일:

매크로 로그인
set_set_system_var@("sql_username@","tgl")
set_system_var@("sql_passwd@","no$way")
엔드 매크로
주의

다음의 파일 보호에 주의해야 합니다. 사용자 이름과 비밀번호가 포함된 모든 파일 정보.