DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: jeff1314
今日帖子: 9
在线用户: 3
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/9 21:03:19
标题:
mysql5.6的问题 浏览:1832
加入我的收藏
楼主: mysql5.6遇到个问题,卡住一天了,大神请帮忙!

var
  SQLQuery:TSQLQuery;
  D:TDateTime;
  SQLText:string;
begin
  if not 店铺名称.IsEmpty and not 医生名称.IsEmpty then
  begin
    SQLQuery:=TSQLQuery.Create(nil);
    SQLText:='select b.序号,b.人员编号,a.姓名,a.性别,a.年龄,a.联系电话,a.住址,b.挂号时间,b.选择医生 from 挂号信息表 b,患者基本信息表 a WHERE b.人员编号=a.序号 and b.选择医生=' + QuotedStr('张晓华') + ' and b.店铺名称=' + QuotedStr('泰明中医001');
    //SQLText:='select * from 挂号信息表';
    ShowMessage(SQLText);
    SQLQuery:=Form1.MySQLHelper.Query(SQLText);

    if SQLQuery.RecordCount<>lv.Items.Count then
    begin
      lv.Items.Clear;
      while not SQLQuery.Eof do
      begin
        with lv.Items.Add do
        begin
          Caption:=SQLQuery.FieldByName('序号').AsString;
          SubItems.Add(SQLQuery.FieldByName('人员编号').AsString);
          SubItems.Add(SQLQuery.FieldByName('姓名').AsString);
          SubItems.Add(SQLQuery.FieldByName('性别').AsString);
          SubItems.Add(SQLQuery.FieldByName('年龄').AsString);
          SubItems.Add(SQLQuery.FieldByName('联系电话').AsString);
          SubItems.Add(SQLQuery.FieldByName('住址').AsString);
          D:=SQLQuery.FieldByName('挂号时间').AsDateTime;
          SubItems.Add(FormatDateTime('yyyy-MM-dd hh:mm:ss',D));
          SubItems.Add(SQLQuery.FieldByName('选择医生').AsString);
        end;
        SQLQuery.Next;
      end;
    end;
    Form1.MySQLHelper.MySQLClose;
  end;
end;

sql语句用Navicat测试无误,但SQLQuery总是为空,数据是存在的。经过测试也不是中文表名和字段名的问题,5.6版本我测试过,除了数据库名不能用中文,其他地方都可以。
此帖子包含附件:
PNG 图像
大小:23.9K
----------------------------------------------
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/9 21:04:59
1楼: 继续上传图片
此帖子包含附件:
PNG 图像
大小:91.7K
----------------------------------------------
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/9 21:05:14
2楼: 继续上传图片
此帖子包含附件:
PNG 图像
大小:64.1K
----------------------------------------------
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/9 21:11:53
3楼: 再上传
此帖子包含附件:
PNG 图像
大小:41.9K
----------------------------------------------
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
2018/7/9 21:57:28
4楼: 你这个错直译就是“操作不支持”,明显就不是语句的问题。
谁知道你到底是怎么连的数据库。

另外既然sqlquery对象是从mysqlhelper里创建的,那你还创建做什么?
----------------------------------------------
--
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/9 22:52:50
5楼: 我测试了一下,如果在两张表查询,后面加where语句就出现那个错误,如果不加或者在一张表查询就不会有错误
----------------------------------------------
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/9 22:54:12
6楼: 比如select * from 患者基本信息表,挂号信息表 where 挂号信息表.人员编号=患者基本信息表.序号
----------------------------------------------
作者:
男 blacktulip (blacktulip) ★☆☆☆☆ -
盒子活跃会员
2018/7/11 12:12:41
7楼: SQL 修改成如下
from 后面跟两个表这个已经不是sql92 标准了。


SQLText:='select b.序号,b.人员编号,a.姓名,a.性别,a.年龄,a.联系电话,a.住址,b.挂号时间,b.选择医生 from 挂号信息表 b
inner join 患者基本信息表 a on  b.人员编号=a.序号 
where  b.选择医生=' + QuotedStr('张晓华') + ' and b.店铺名称=' + QuotedStr('泰明中医001');
----------------------------------------------
-
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/12 9:56:03
8楼: 谢谢,我试试~~
----------------------------------------------
作者:
男 earthsbest (全能中间件) ▲▲▲▲△ -
普通会员
2018/7/12 10:11:12
9楼: SELECT FROM 多个表,大多数据都支持的,只能说是 TSQLQuery 功能太弱。
----------------------------------------------
Delphi4Linux Delphi三层/FireDAC 技术群:734515869 http://www.cnblogs.com/rtcmw
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/12 10:58:54
9楼: 不行啊,还是一样的错误。。。
----------------------------------------------
作者:
男 cenunus (cenunus) ★☆☆☆☆ -
普通会员
2018/7/12 11:03:57
10楼: 哪位老大能帮我看看?加我QQ1817203915,我把工程传给你,谢谢~~
----------------------------------------------
作者:
男 chscheese (chscheese) ★☆☆☆☆ -
盒子活跃会员
2018/7/13 1:07:55
11楼: 你看下MySQL的日志,看看传过去的到底是什么语句就不纠结了..........
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行109.375毫秒 RSS