当前位置: 代码迷 >> Sybase >> 关于c++ builder用BDE连接Sybase的有关问题
  详细解决方案

关于c++ builder用BDE连接Sybase的有关问题

热度:1761   发布时间:2013-02-26 00:00:00.0
关于c++ builder用BDE连接Sybase的问题
没用过Sybase,呵呵,所以问题有点傻

我现在机器上装了一个Sybase 12.5的版本,然后在上面建立了一个自己的数据库posht,为这个库建立了一个用户,用户名为wqlm888,密码也是wqlm888.我的机器名为SD-SWJ.
如果我现在想用BDE去连的话,
AnsiString username ="USER NAME=wqlm888";
  AnsiString servername = "SERVER NAME=SD-SWJ";
  AnsiString dataname = "DATABASE NAME=posht";
  AnsiString pass = "PASSWORD=wqlm888";
  TDatabase *tempdata;
  tempdata=new TDatabase(Application);
  tempdata->SessionName = "Default";
  tempdata->DriverName="SYBASE";
  tempdata->Params->Clear();


  tempdata->Params->Add(servername);
  tempdata->Params->Add(dataname);
  tempdata->Params->Add(username);
  tempdata->Params->Add(pass);


  tempdata->DatabaseName="posht";
  tempdata->LoginPrompt=false;

  tempdata->Connected = true;

但是程序运行总是报 “Project Project1.exe raised exception class EDBEngineError with message 'General SQL error.
ct_connect(): directory service layer: internal directory control layer error: Requested server name not found.
Alias: posht'. Process stopped. Use Step or Run to continue.”,请问是什么原因呢?


------解决方案--------------------------------------------------------
看错误信息,server name: SD-SWJ在你的interface文件或者sql.ini文件里没有注册。你得先添加这个服务器。