zoukankan      html  css  js  c++  java
  • dbexpress连接mysql提示Operation not allowed on a unidirectional dataset

    最近刚接触delphi,在了解到dbExpress连接mysql的时候,出现了一些问题,特记录下

    我遇到的问题有两个

    1.

    TDBGrid --DataSet=TDataSource1

    TDataSource --DataSet = SqlTable1

    DBNavigator -- DataSet

    SQLConnection -- ConnectionName=MYSQLCONNECTION,Drive=MYSQL

    SQLTable --SqlConnection=SqlConnection1 TableName=t_tablename  Active=true

    dbExpress -> TDataSource ->TDBGrid 

    前面是主要用到的控件,后面是相关的属性(简单测试了下,没有涉及到代码);

    遇到的问题就是在设置TDBGrid的DataSet属性时,它会提示

    Operation not allowed on a unidirectional dataset

    大致意思就是“不允许一个单向的数据集操作”

    后来在网上搜索了下,说是需要这样操作才可以

    dbExpress -> TDataSetProvider -> TClientDataSet -> TDataSource ->TDBGrid 

    后来我又设置了下

    TDBGrid --DataSet=TDataSource1

    TDataSource --DataSet = SqlTable1

    DBNavigator -- DataSet

    SQLConnection -- ConnectionName=MYSQLCONNECTION,Drive=MYSQL

    SQLTable --SqlConnection=SqlConnection1 TableName=t_tablename  Active=true

    DataSetProvider -- DataSet=SqlTable1

    ClientDataSet -- Providername=DataSetProvider1 Active=true

    这样一切就Ok了

    不会报错,数据也正常显示了,但有一个问题,通过DBNavigator进行相关数据库操作,比如添加,编辑数据的时候,貌似不能添加或编辑成功。不知何故

    我遇到的第二个问题就是乱码的问题

    数据库中的表是采用的utf8格式的,读出来的全是问号,

    我是这样解决的

    修改SqlConnection--Params属性,找到SeverCharSet=gbk

    一切就解决了   

  • 相关阅读:
    采购订单打印并预览PDF
    KiCad 如何在原理图添加元件时看到 PCB 封装?
    KiCad 开源元件库收集 (2019-05-31)
    KiCad 的 Digikey 元件库
    MySQL 出现 Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
    AD10 没有原理图是否可以修改 PCB
    KiCad 如何画板框
    当 1117 遇到 MLCC 后
    RequireJS 学习资料收集
    MEMS 硅麦资料收集
  • 原文地址:https://www.cnblogs.com/jijm123/p/10586777.html
Copyright © 2011-2022 走看看