我代码中使用 otl 通过ODBC连接MySql, 执行语句时抛出异常,找不到原因
代码如下       otl_stream os_db;
try
{
               os_db.open(100,"select @curRow := @curRow + 1 as rowno,t.name  from (select @curRow:= 0) t, emploee  t ",conn_db);
while (!os_db.eof())
{
} }
catch(otl_exception *e)
{
}
catch(...)
{
           //执行open语句进入到此处。。!!!!!!!!
}

解决方案 »

  1.   


    from (select @curRow:= 0) t, emploee  t 你看看是不是 你的两个表的别称都是 t 导致的
      

  2.   

    查询语句我用sqlyog测试倒是能通过
      

  3.   


    别称是我贴代码写错了,不是别称的问题,用OTL_Stream open执行变量语句就报错
      

  4.   


    别称是我贴代码写错了,不是别称的问题,用OTL_Stream open执行变量语句就报错我猜也是里面包含了@变量导致的,但是光看你的代码,看不出哪儿有问题。另外,你用的是 OTL_ODBC_MYSQL 这个吧,适用于mysql的
      

  5.   


    别称是我贴代码写错了,不是别称的问题,用OTL_Stream open执行变量语句就报错我猜也是里面包含了@变量导致的,但是光看你的代码,看不出哪儿有问题。另外,你用的是 OTL_ODBC_MYSQL 这个吧,适用于mysql的是定义的OTL_ODBC_MYSQL
    目前执行不使用@变量的查询语句都是正常的,使用了变量查询语句就报错,异常是
      

  6.   


    别称是我贴代码写错了,不是别称的问题,用OTL_Stream open执行变量语句就报错我猜也是里面包含了@变量导致的,但是光看你的代码,看不出哪儿有问题。另外,你用的是 OTL_ODBC_MYSQL 这个吧,适用于mysql的是定义的OTL_ODBC_MYSQL
    目前执行不使用@变量的查询语句都是正常的,使用了变量查询语句就报错,异常是
    那就不用@变量吧,还有其他的方法,用过这个也可以实现 row_number的效果:select (select count(*) from emploee t1 where t1.主键 <= t.主键 ) as rowno,t.name  from emploee  t
      

  7.   

    http://blog.csdn.net/acmain_chm/article/details/4095531
    MySQL中的ROWNUM的实现
    MySQL 几乎模拟了 Oracle,SQL Server等商业数据库的大部分功能,函数。但很可惜,到目前的版本(5.1.33)为止,仍没有实现ROWNUM这个功能。 下面介绍几种具体的实现方法.建立实验环境如下mysql> create table tbl (    ->  id      int primary key,    ->  col     int    -> );Que...