Pessoal,

há alguém que possa me ajudar?

PROBLEMA:

tenho uma aplicação em C que executa o seguinte código para conectar ao
banco:

void con_bd (void)
    /* Conectar `a Base de Dados Oracle. */
{
  /* EXEC SQL BEGIN DECLARE SECTION; */
    /* VARCHAR  username [50]; */
struct { unsigned short len; unsigned char arr[50]; } username;
    /* VARCHAR  password [50]; */
struct { unsigned short len; unsigned char arr[50]; } password;
  /* EXEC SQL END DECLARE SECTION; */

    /* Obter das variaveis de ambiente o nome e a senha da base de dados a
ser acessada. */
  strcpy ( (char *) username.arr, (char *) getenv ("ads_bdus") );
  username.len = strlen (username.arr);
  strcpy ( (char *) password.arr, (char *) getenv ("ads_bdpw") );
  password.len = strlen (password.arr);


    /* Logar na ORACLE. */
  /* EXEC SQL WHENEVER SQLERROR DO sqlerror (); */

  /* EXEC SQL CONNECT :username IDENTIFIED BY :password; */
{
  sqlstm.iters = (unsigned int  )10;
  sqlstm.offset = (unsigned int  )2;
  sqlstm.cud = sqlcud0;
  sqlstm.sqlest = (unsigned char  *)&sqlca;
  sqlstm.sqlety = (unsigned short)0;
  sqlstm.sqhstv[0] = (unsigned char  *)&username;
  sqlstm.sqhstl[0] = (unsigned int  )52;
  sqlstm.sqindv[0] = (         short *)0;
  sqlstm.sqharm[0] = (unsigned int  )0;
  sqlstm.sqhstv[1] = (unsigned char  *)&password;
  sqlstm.sqhstl[1] = (unsigned int  )52;
  sqlstm.sqindv[1] = (         short *)0;
  sqlstm.sqharm[1] = (unsigned int  )0;
  sqlstm.sqphsv = sqlstm.sqhstv;
  sqlstm.sqphsl = sqlstm.sqhstl;
  sqlstm.sqpind = sqlstm.sqindv;
  sqlstm.sqparm = sqlstm.sqharm;
  sqlstm.sqparc = sqlstm.sqharc;
  sqlcex(&sqlctx, &sqlstm, &sqlfpn);
  if (sqlca.sqlcode < 0) sqlerror();
}

este código funciona perfeitamente com o oracle8i.

porém quando tento executá-lo no Oracle 10g ocorre o seguinte erro:
SQLNET.LOG

OBS: (HOST=yyyyy)(USER=xxxxx))  eu alterei os verdadeiros

Fatal OSN connect error 12545, connecting to:
 
(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=/home/oraaurig/app/frs10g/product/10.1.2/bin/oracle)(ARGV0=oraclebocaina10i1)(ARGS='(DESCRIPTION=(LOCAL=YES)(AD
DRESS=(PROTOCOL=beq)))')(DETACH=NO))(CONNECT_DATA=(CID=(PROGRAM=)
(HOST=yyyyy)(USER=xxxxx))))

  VERSION INFORMATION:
        TNS for SVR4: Version 2.1.6.0.0 - Production
        Unix Domain Socket IPC NT Protocol Adaptor for SVR4: Version
2.1.6.1.0 - Production
        Oracle Bequeath NT Protocol Adapter for SVR4: Version 2.1.6.1.0 -
Production
        TCP/IP NT Protocol Adapter for SVR4: Version 2.1.6.1.0 - Production
  Time: 28-APR-08 16:43:02
  Tracing not turned on.
  Tns error struct:
    nr err code: 12206
    TNS-12206: TNS:received a TNS error during navigation
    ns main err code: 12545
    TNS-12545: Connect failed because target host or object does not exist
    ns secondary err code: 12560
    nt main err code: 515
    TNS-00515: Connect failed because target host or object does not exist
    nt secondary err code: 2
    nt OS err code: 0

MINHA PERGUNTA, quando eu executo o sqlplus na linha de comando apenas
passando o user e password o que tem que estar setado em meu ambietne para
não ocorrer o erro acima???

OBS: meu ambiente está em UNIX Solaris 10.

obrigado para quem possa me ajudar.


Alfredo


[As partes desta mensagem que não continham texto foram removidas]

Responder a