The ODBC engine cannot be found. ERROR MESSAGE

  • Follow


Hi,
I'm trying to connect to a sql server 2000 database from SAS. I'm
doing the following:
LIBNAME mylibref ODBC
NOPROMPT ="UID=;PWD=;DSN=cdmMeDB;SERVER=sql26;DATABASE=cdm_me;" ;

PROC PRINT DATA = mylibref.ms_miniTable;
 run;

I created the DSN cdmMeDB connection using the admin tools from my
computer and when I test the connection it works.

When I run the above from SAS I get:

ERROR: The ODBC engine cannot be found.
ERROR: Error in the LIBNAME statement


Then I tried:
proc setinit; run;
and I get:


Original site validation data
Site name:    'XXX'.
Site number:  40214945.
Expiration:   15OCT2009.
Grace Period:  45 days (ending 29NOV2009).
Warning Period: 45 days (ending 13JAN2010).
System birthday:   22SEP2009.
Operating System:   W32_WKS .
Product expiration dates:
---Base
Product
15OCT2009
---SAS/
STAT
15OCT2009
---SAS/
GRAPH
15OCT2009
---SAS/
IML
15OCT2009
---SAS/
CONNECT
15OCT2009
---SAS/ACCESS Interface to PC
Files                                        15OCT2009
---SAS Stat
Studio
15OCT2009
---SAS Workspace Server for Local
Access                                   15OCT2009

I also tried the following to get what products I have installed:
DATA   Products(keep = Product);%* ----- ----------------------------
*;
attrib Product length = $ 16;
file   Log;
set    SAShelp.vOption(where =(OptName eq 'PATH'));
put    'sasroot: ' "%sysget(sasroot)"
  /    'sasext0: ' "%sysget(sasext0)";
Setting = compbl(translate(tranwrd(Setting,'\sasexe',' ')
                          ,' ','!()"'   ,' ','00'x   ,' ','0D'x
                          ,' ','0A'x    ,' ','0C'x   ,' ','3A'x
                          )%*get rid of special characters;
                );
put    'before : ' Setting=;
Setting = compbl(translate(tranwrd(Setting,'sasroot\',' ')
                          ,' ','()"')   );
Setting = compbl(translate(tranwrd(Setting,'sasext0\',' ')
                          ,' ','()"')   );
put    'after  : ' Setting=;

put /  "%sysfunc(getoption(SysIn))"
    /  'task: compare with Product list in macro PassInfx'  /;

dim = length(Setting) - length(compress(Setting));%*count words;
put  '                  ' dim=;

do   I = 1 to dim;                Product = scan(Setting,I,' ');
     if   Product ne ' ' then do; put '%Let Info' I '=' Product @24
';';
                                  output;   end;
     else leave;
     end;%*do I to dim;           put '     end list .........:';
stop; run;%* ........................... ............................
*;

PROC Print data = &SysLast.;
run;

And I get:
DATA   Products(keep = Product);%* ----- ----------------------------
*;
attrib Product length = $ 16;
file   Log;
set    SAShelp.vOption(where =(OptName eq 'PATH'));
put    'sasroot: ' "%sysget(sasroot)"
  /    'sasext0: ' "%sysget(sasext0)";
Setting = compbl(translate(tranwrd(Setting,'\sasexe',' ')
                          ,' ','!()"'   ,' ','00'x   ,' ','0D'x
                          ,' ','0A'x    ,' ','0C'x   ,' ','3A'x
                          )%*get rid of special characters;
                );
put    'before : ' Setting=;
Setting = compbl(translate(tranwrd(Setting,'sasroot\',' ')
                          ,' ','()"')   );
Setting = compbl(translate(tranwrd(Setting,'sasext0\',' ')
                          ,' ','()"')   );
put    'after  : ' Setting=;

put /  "%sysfunc(getoption(SysIn))"
    /  'task: compare with Product list in macro PassInfx'  /;

dim = length(Setting) - length(compress(Setting));%*count words;
put  '                  ' dim=;

do   I = 1 to dim;                Product = scan(Setting,I,' ');
     if   Product ne ' ' then do; put '%Let Info' I '=' Product @24
';';
                                  output;   end;
     else leave;
     end;%*do I to dim;           put '     end list .........:';
stop; run;%* ........................... ............................
*;

PROC Print data = &SysLast.;
run;


The questions are: Do I have ODBC installed or not? Why the error?



0
Reply sordomargarita (2) 11/24/2009 8:16:35 PM

On Nov 24, 3:16=A0pm, MS <sordomargar...@gmail.com> wrote:
> Hi,
> I'm trying to connect to a sql server 2000 database from SAS. I'm
> doing the following:
> LIBNAME mylibref ODBC
> NOPROMPT =3D"UID=3D;PWD=3D;DSN=3DcdmMeDB;SERVER=3Dsql26;DATABASE=3Dcdm_me=
;" ;
>
> PROC PRINT DATA =3D mylibref.ms_miniTable;
> =A0run;
>
> I created the DSN cdmMeDB connection using the admin tools from my
> computer and when I test the connection it works.
>
> When I run the above from SAS I get:
>
> ERROR: The ODBC engine cannot be found.
> ERROR: Error in the LIBNAME statement
>
> Then I tried:
> proc setinit; run;
> and I get:
>
> Original site validation data
> Site name: =A0 =A0'XXX'.
> Site number: =A040214945.
> Expiration: =A0 15OCT2009.
> Grace Period: =A045 days (ending 29NOV2009).
> Warning Period: 45 days (ending 13JAN2010).
> System birthday: =A0 22SEP2009.
> Operating System: =A0 W32_WKS .
> Product expiration dates:
> ---Base
> Product
> 15OCT2009
> ---SAS/
> STAT
> 15OCT2009
> ---SAS/
> GRAPH
> 15OCT2009
> ---SAS/
> IML
> 15OCT2009
> ---SAS/
> CONNECT
> 15OCT2009
> ---SAS/ACCESS Interface to PC
> Files =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0=
 =A0 =A0 =A015OCT2009
> ---SAS Stat
> Studio
> 15OCT2009
> ---SAS Workspace Server for Local
> Access =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =
=A0 15OCT2009
>
> I also tried the following to get what products I have installed:
> DATA =A0 Products(keep =3D Product);%* ----- ----------------------------
> *;
> attrib Product length =3D $ 16;
> file =A0 Log;
> set =A0 =A0SAShelp.vOption(where =3D(OptName eq 'PATH'));
> put =A0 =A0'sasroot: ' "%sysget(sasroot)"
> =A0 / =A0 =A0'sasext0: ' "%sysget(sasext0)";
> Setting =3D compbl(translate(tranwrd(Setting,'\sasexe',' ')
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ,' ','!()"' =A0 ,' ',=
'00'x =A0 ,' ','0D'x
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ,' ','0A'x =A0 =A0,' =
','0C'x =A0 ,' ','3A'x
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 )%*get rid of special=
 characters;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 );
> put =A0 =A0'before : ' Setting=3D;
> Setting =3D compbl(translate(tranwrd(Setting,'sasroot\',' ')
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ,' ','()"') =A0 );
> Setting =3D compbl(translate(tranwrd(Setting,'sasext0\',' ')
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ,' ','()"') =A0 );
> put =A0 =A0'after =A0: ' Setting=3D;
>
> put / =A0"%sysfunc(getoption(SysIn))"
> =A0 =A0 / =A0'task: compare with Product list in macro PassInfx' =A0/;
>
> dim =3D length(Setting) - length(compress(Setting));%*count words;
> put =A0' =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0' dim=3D;
>
> do =A0 I =3D 1 to dim; =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Product =3D scan(Se=
tting,I,' ');
> =A0 =A0 =A0if =A0 Product ne ' ' then do; put '%Let Info' I '=3D' Product=
 @24
> ';';
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 outpu=
t; =A0 end;
> =A0 =A0 =A0else leave;
> =A0 =A0 =A0end;%*do I to dim; =A0 =A0 =A0 =A0 =A0 put ' =A0 =A0 end list =
..........:';
> stop; run;%* ........................... ............................
> *;
>
> PROC Print data =3D &SysLast.;
> run;
>
> And I get:
> DATA =A0 Products(keep =3D Product);%* ----- ----------------------------
> *;
> attrib Product length =3D $ 16;
> file =A0 Log;
> set =A0 =A0SAShelp.vOption(where =3D(OptName eq 'PATH'));
> put =A0 =A0'sasroot: ' "%sysget(sasroot)"
> =A0 / =A0 =A0'sasext0: ' "%sysget(sasext0)";
> Setting =3D compbl(translate(tranwrd(Setting,'\sasexe',' ')
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ,' ','!()"' =A0 ,' ',=
'00'x =A0 ,' ','0D'x
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ,' ','0A'x =A0 =A0,' =
','0C'x =A0 ,' ','3A'x
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 )%*get rid of special=
 characters;
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 );
> put =A0 =A0'before : ' Setting=3D;
> Setting =3D compbl(translate(tranwrd(Setting,'sasroot\',' ')
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ,' ','()"') =A0 );
> Setting =3D compbl(translate(tranwrd(Setting,'sasext0\',' ')
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ,' ','()"') =A0 );
> put =A0 =A0'after =A0: ' Setting=3D;
>
> put / =A0"%sysfunc(getoption(SysIn))"
> =A0 =A0 / =A0'task: compare with Product list in macro PassInfx' =A0/;
>
> dim =3D length(Setting) - length(compress(Setting));%*count words;
> put =A0' =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0' dim=3D;
>
> do =A0 I =3D 1 to dim; =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0Product =3D scan(Se=
tting,I,' ');
> =A0 =A0 =A0if =A0 Product ne ' ' then do; put '%Let Info' I '=3D' Product=
 @24
> ';';
> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 outpu=
t; =A0 end;
> =A0 =A0 =A0else leave;
> =A0 =A0 =A0end;%*do I to dim; =A0 =A0 =A0 =A0 =A0 put ' =A0 =A0 end list =
..........:';
> stop; run;%* ........................... ............................
> *;
>
> PROC Print data =3D &SysLast.;
> run;
>
> The questions are: Do I have ODBC installed or not? Why the error?

---------------

from the last piece of code I get:
Obs    Product
1         core
2         tablesrvtk
3         access
4         connect
5         graph
6         iml
7         stat
8         spdsclient
0
Reply MS 11/24/2009 8:26:14 PM


1 Replies
633 Views

(page loaded in 0.109 seconds)

Similiar Articles:













7/20/2012 7:32:43 PM


Reply: