使用Delphi7的dbexpress连接mysql,使用sqldataset1.Open来进行select查询,怎么才能知道是否查询成功呢?

解决方案 »

  1.   

    成功就是获得数据库的select执行后返回数据
    select的语句可以保证是正确的我现在是用sqldataset1.Fields.Fields[0].AsString来获得返回的数据,如果连接失败的话这个数据回是空的[不知道为什么会连接失败]
    但是不能用这个数据是否为空来判断是否执行成功,因为select也有可能返回的本来就是空的数据啊
      

  2.   

    [不知道为什么会连接失败]!!     狂晕!如果连接失败会有提示的呀,当然你要首先保证连接成功了才能去执行 SQL 语句的呀!
      

  3.   

    我用的SQLConnection KeepConnection方式连接数据库,select时就    sqldataset1.CommandText:='select * from data';
        sqldataset1.Open ;
        Scrstr:=sqldataset1.Fields.Fields[0].AsString;
        sqldataset1.Close;
      

  4.   

    1.执行 SQL 前判断一下是否成功连接着数据库;2.用 Try 处理连接失败的错误。
      

  5.   

    1.执行 SQL 前判断一下是否成功连接着数据库
    这个该怎么做啊?这个地方不是很想用Try。
    如果于数据库连接失败的话,返回值是空的,但是正常的select也有可能会是空的返回,看返回结果不太好办啊
      

  6.   

    1.“如果于数据库连接失败的话,返回值是空的”你这是担心什么啊?????????????
    你以为连接失败的状态下去执行 SQL 语句还会有返回值吗?马上就会抛出异常啦!  if SQLConnection1.Connected then
        ShowMessage('已经连接')
      else
        ShowMessage('连接丢失');2.“这个地方不是很想用Try。 "这不个轮不到你想不想,只要有可能抛出异常的地方都需要进行异常处理。当抛出了异常而没有 Try 结构去处理,结果可是无法预料的。这是原则问题。
      

  7.   

    既然你能保证语句不会出问题,那么只有两个可能会出错。
    1。SQL断开连接。
    2。连接超时。
    检测第一种可能性,可以用检测是否连接或者用TRY
    第二种可能性,只能用TRY 
    所以建议最好用
    try
    ...
    except
    end;
      

  8.   

    常在CSDN上下东东,分不够,三分走人!这次的回复,希望不会太短
    ---------------------------------------------------------
    关于一个SQL语句执行是否成功,可以先Repair一下
    对于DDL语句用EXECSQL的返回值可得到是否成功
    对于DML语句你可看看组件是否为空得到是否成功
    if 数据集组件.IsEmpty then 不成功