存档

文章标签 ‘MySQL’

给i686制作mariadb的docker镜像

2018年2月25日 没有评论

不知道Docker公司是怎么想的,明明其Dockerfile没有指定必须x64,却不提供i686的镜像,只好每次有新版本的时候,重新制作一次。步骤如下:

1.先从Docker公司的github里面获取最新的Dockerfile

git clone https://github.com/docker-library/mariadb.git

2.进入mariadb/10.2目录,然后执行

docker build –t mariadb:10.2.13 .

然后等着就好了。

建议开始之前,先把debian:jessie升级到最新,这样能省很多debian做apt update的时间。

分类: Docker, Linux, MySQL 标签: , ,

使用MySQL for Visual Studio创建EF模型的注意事项

2017年7月14日 没有评论

1 安装的MySQL for Visual Studio之前需要先安装MySQL的Connector/NET

2 Connector/NET和MySQL for Visual Studio建议都安装release的版本。

3 在项目中创建MySQL的EF模型前,项目里面需要先用Nuget安装MySQL.Data.Entity,同样建议安装release版本。

4 更新EnityFramework到最新的版本。

因为:

  • 如果没有按照1、2和3的顺序来做的话,会出现创建连接的时候没有mysql的驱动。
  • 不都是用同意的release版本的话,可能在创建完成数据连接以后,选择表之前,窗口闪退。闪退的情况在Visual Studio 2015和2017中都会发生。互联网上还有2013同类问题的报告。
  • EntityFramework不升级到最新版的话,会有提示问题你是否生产EF5的实体模型……

新版ArchLinux上MariaDB的安装和升级

2015年9月13日 没有评论

最近在ArchLinux上安装MariaDB的节奏和以前有了一些变化。如下:

安装

1. pacman –S mariadb

2. mysql_install_db –user=mysql –basedir=/usr –datadir=/var/lib/mysql

3. systemctl enable mysqld

4. systemctl start mysqld

5. mysql_secure_installation

升级(在较大的升级以后,比如5.0升级到10.0或者10.升级到10.1)

mysql_update –u root –p

为root添加远程访问

$ mysql -u root -p
MariaDB> CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
MariaDB> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
MariaDB> quit
分类: Linux, MySQL, Raspberry Pi 标签: ,

树莓派1和树莓派2的性能对比(6):Server Benchmark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

树莓派1和树莓派2的性能对比(3):Synthetic Read Write BenchMark

树莓派1和树莓派2的性能对比(4):Real World PHP BenchMark

树莓派1和树莓派2的性能对比(5):Real World PHP & MySQL BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(7) – Server Benchmark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Server Benchmark
test_1_create_dir 0.0017 seconds 0.0009 seconds
test_1_small_page 0.4914 seconds 0.1713 seconds
test_1b_small_page 0.4885 seconds 0.1394 seconds
test_1c_small_page 0.4882 seconds 0.1392 seconds
test_1d_small_page 0.4898 seconds 0.1392 seconds
test_1e_small_page 0.4889 seconds 0.1397 seconds
test_2_create_tempfile 0.0016 seconds 0.0008 seconds
test_2_medium_page 1.3283 seconds 0.4323 seconds
test_2b_medium_page 1.3281 seconds 0.4348 seconds
test_2c_medium_page 1.3297 seconds 0.4374 seconds
test_2d_medium_page 1.3283 seconds 0.4361 seconds
test_2e_medium_page 1.3318 seconds 0.4373 seconds
test_3_large_page 3.9221 seconds 1.3041 seconds
test_3_write 0.1565 seconds 0.0558 seconds
test_3b_large_page 3.9231 seconds 1.3027 seconds
test_3c_large_page 3.9270 seconds 1.3016 seconds
test_3d_large_page 3.9473 seconds 1.3015 seconds
test_3e_large_page 3.9296 seconds 1.3024 seconds
test_4_append 0.1028 seconds 0.0383 seconds
test_4_huge_page 6.2111 seconds 2.0126 seconds
test_4b_append 0.0999 seconds 0.0376 seconds
test_4b_huge_page 6.1738 seconds 2.0134 seconds
test_4c_huge_page 6.2370 seconds 2.0141 seconds
test_4d_huge_page 6.2073 seconds 2.0137 seconds
test_4e_huge_page 6.2364 seconds 2.0114 seconds
test_5_fileinfo 0.3223 seconds 0.1466 seconds
test_6_read_1024 1.9919 seconds 0.5921 seconds
test_6b_read_512 1.9095 seconds 0.5338 seconds
test_6c_read_256 2.5433 seconds 0.7696 seconds
test_6d_read_128 4.1118 seconds 1.1324 seconds
test_6e_read_64 7.1683 seconds 2.0073 seconds
test_6f_read_32 12.9881 seconds 3.5275 seconds
test_6g_read_16 28.5116 seconds 7.2687 seconds
test_7_read_8 33.9870 seconds 9.7546 seconds
test_9_readdir 1.6711 seconds 0.6747 seconds
test_arithmetic 0.0060 seconds 0.0015 seconds
test_array_operators 0.0101 seconds 0.0028 seconds
test_bitwise 0.0013 seconds 0.0005 seconds
test_casting 0.0283 seconds 0.0066 seconds
test_chr_fixed 0.0482 seconds 0.0116 seconds
test_chr_hardcoded 0.0093 seconds 0.0032 seconds
test_chr_var 0.0407 seconds 0.0107 seconds
test_comment_loop 0.0022 seconds 0.0014 seconds
test_compare 0.0020 seconds 0.0009 seconds
test_compare_false 0.0002 seconds 0.0001 seconds
test_compare_invert 0.0003 seconds 0.0001 seconds
test_compare_strict 0.0004 seconds 0.0001 seconds
test_compare_unstrict 0.0008 seconds 0.0003 seconds
test_connect_db 0.0587 seconds 0.0172 seconds
test_constants 0.0039 seconds 0.0011 seconds
test_crc32 0.0027 seconds 0.0007 seconds
test_db_setup 0.6793 seconds 0.1770 seconds
test_del_file 0.0014 seconds 0.0008 seconds
test_del_tempdir 0.0010 seconds 0.0004 seconds
test_distinctcolumn 1.8773 seconds 0.6269 seconds
test_do_while 0.0097 seconds 0.0051 seconds
test_do_while_break 0.0021 seconds 0.0011 seconds
test_empty 0.0003 seconds 0.0001 seconds
test_empty_loop 0.0024 seconds 0.0014 seconds
test_fetcharray 1.3069 seconds 0.4140 seconds
test_fetchassoc 1.1749 seconds 0.3709 seconds
test_fetchlength 1.1717 seconds 0.3643 seconds
test_fetchrow 1.1665 seconds 0.3681 seconds
test_fieldflags 3.4805 seconds 1.0895 seconds
test_foreach 0.0433 seconds 0.0153 seconds
test_get_class 0.0030 seconds 0.0008 seconds
test_global_scalar_assign 0.0014 seconds 0.0006 seconds
test_global_string_assign 0.0077 seconds 0.0029 seconds
test_if_constant 0.0004 seconds 0.0002 seconds
test_increment 0.0029 seconds 0.0010 seconds
test_is_array 0.0010 seconds 0.0003 seconds
test_is_object 0.0010 seconds 0.0003 seconds
test_is_type 0.0032 seconds 0.0009 seconds
test_isset 0.0003 seconds 0.0001 seconds
test_line 0.0004 seconds 0.0002 seconds
test_local_array_assign 0.0342 seconds 0.0096 seconds
test_local_boolean_assign 0.0021 seconds 0.0007 seconds
test_local_float_assign 0.0021 seconds 0.0007 seconds
test_local_hash_assign 0.0019 seconds 0.0007 seconds
test_local_integer_assign 0.0020 seconds 0.0007 seconds
test_local_object_assign 0.0020 seconds 0.0006 seconds
test_local_scalar_assign 0.0031 seconds 0.0010 seconds
test_local_string_assign 0.0078 seconds 0.0025 seconds
test_maxget 0.9734 seconds 0.3113 seconds
test_md5 0.0040 seconds 0.0014 seconds
test_microtime 0.0163 seconds 0.0043 seconds
test_mt_rand 0.0016 seconds 0.0005 seconds
test_numfields 2.5441 seconds 0.7369 seconds
test_numrows 2.5617 seconds 0.7237 seconds
test_ord 0.1501 seconds 0.0443 seconds
test_ordered_functions 0.0234 seconds 0.0101 seconds
test_ordered_functions_references 0.0228 seconds 0.0098 seconds
test_page1a 0.2641 seconds 0.0792 seconds
test_page1b 0.2585 seconds 0.0781 seconds
test_page1c 0.2621 seconds 0.0779 seconds
test_page1d 0.2613 seconds 0.0781 seconds
test_page1e 0.2598 seconds 0.0781 seconds
test_page2a 0.7814 seconds 0.2352 seconds
test_page2b 0.7866 seconds 0.2332 seconds
test_page2c 0.8034 seconds 0.2333 seconds
test_page2d 0.7826 seconds 0.2341 seconds
test_page2e 0.7810 seconds 0.2342 seconds
test_page3a 1.1535 seconds 0.3559 seconds
test_page3b 1.1828 seconds 0.3559 seconds
test_page3c 1.1847 seconds 0.3560 seconds
test_page3d 1.1614 seconds 0.3560 seconds
test_page3e 1.1867 seconds 0.3562 seconds
test_page4a 1.5888 seconds 0.4892 seconds
test_page4b 1.5672 seconds 0.4886 seconds
test_page4c 1.5672 seconds 0.4895 seconds
test_page4d 1.5980 seconds 0.4899 seconds
test_page4e 1.5838 seconds 0.4891 seconds
test_preg_match 0.0111 seconds 0.0028 seconds
test_rand 0.0015 seconds 0.0005 seconds
test_references 0.0004 seconds 0.0002 seconds
test_rowcount 0.5033 seconds 0.1234 seconds
test_sha1 0.0073 seconds 0.0016 seconds
test_sort 4.1689 seconds 1.2160 seconds
test_sort2 4.1101 seconds 1.3251 seconds
test_sort3 4.2083 seconds 1.2172 seconds
test_string_append 0.0058 seconds 0.0021 seconds
test_strlen 0.0010 seconds 0.0003 seconds
test_sumcolumn 1.0162 seconds 0.3223 seconds
test_switch 0.0070 seconds 0.0034 seconds
test_time 0.0016 seconds 0.0005 seconds
test_unordered_functions 0.0266 seconds 0.0112 seconds
test_variable_variables 0.0032 seconds 0.0009 seconds
test_while 0.0091 seconds 0.0056 seconds
test_write 0.6625 seconds 0.1705 seconds
test_write2 0.7029 seconds 0.1888 seconds
test_write3 0.7162 seconds 0.1961 seconds
test_write_cleanup 0.0103 seconds 0.0040 seconds
Score(higher is better) 144 484

树莓派1和树莓派2的性能对比(5):Real World PHP & MySQL BenchMark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

树莓派1和树莓派2的性能对比(3):Synthetic Read Write BenchMark

树莓派1和树莓派2的性能对比(4):Real World PHP BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(6) – Real World PHP & MySQL BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Real World PHP & MySQL BenchMark
test_page1a 2.3365 seconds 0.7525 seconds
test_page1b 2.3499 seconds 0.7534 seconds
test_page1c 2.3339 seconds 0.7531 seconds
test_page1d 2.3447 seconds 0.7529 seconds
test_page1e 2.3353 seconds 0.7529 seconds
test_page2a 6.4310 seconds 1.8929 seconds
test_page2b 6.3900 seconds 1.8923 seconds
test_page2c 6.4243 seconds 1.8913 seconds
test_page2d 6.4153 seconds 1.8927 seconds
test_page2e 6.4204 seconds 1.8924 seconds
test_page3a 9.0395 seconds 2.6444 seconds
test_page3b 9.3039 seconds 2.6462 seconds
test_page3c 8.9621 seconds 2.6440 seconds
test_page3d 8.9731 seconds 2.6467 seconds
test_page3e 8.9627 seconds 2.6429 seconds
test_page4a 12.5272 seconds 3.7309 seconds
test_page4b 12.3040 seconds 3.7344 seconds
test_page4c 12.7825 seconds 3.7329 seconds
test_page4d 12.3229 seconds 3.7370 seconds
test_page4e 12.4328 seconds 3.7291 seconds
Score(higher is better) 198 665

树莓派1和树莓派2的性能对比(4):Real World PHP BenchMark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

树莓派1和树莓派2的性能对比(3):Synthetic Read Write BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(5) – Real World PHP BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Real World PHP BenchMark
test_1_small_page 1.1907 seconds 0.5099 seconds
test_1b_small_page 1.1620 seconds 0.3424 seconds
test_1c_small_page 1.1608 seconds 0.3422 seconds
test_1d_small_page 1.1648 seconds 0.3435 seconds
test_1e_small_page 1.1701 seconds 0.3411 seconds
test_2_medium_page 3.2147 seconds 1.0279 seconds
test_2b_medium_page 3.2330 seconds 1.0329 seconds
test_2c_medium_page 3.3178 seconds 1.0358 seconds
test_2d_medium_page 3.3654 seconds 1.0369 seconds
test_2e_medium_page 3.3518 seconds 1.0372 seconds
test_3_large_page 9.9856 seconds 3.1942 seconds
test_3b_large_page 10.2158 seconds 3.1947 seconds
test_3c_large_page 9.9806 seconds 3.1957 seconds
test_3d_large_page 10.2136 seconds 3.1958 seconds
test_3e_large_page 10.2217 seconds 3.1928 seconds
test_4_huge_page 15.8610 seconds 4.9444 seconds
test_4b_huge_page 15.5103 seconds 4.9461 seconds
test_4c_huge_page 15.8390 seconds 4.9671 seconds
test_4d_huge_page 15.6031 seconds 4.9714 seconds
test_4e_huge_page 15.6240 seconds 4.9754 seconds
Score(higher is better) 297 941

树莓派1和树莓派2的性能对比(3):Synthetic Read Write BenchMark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(4) – Synthetic Read/Write BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Synthetic Read Write BenchMark
test_1_create_dir 0.0014 seconds 0.0010 seconds
test_2_create_tempfile 0.0015 seconds 0.0009 seconds
test_3_write 0.2340 seconds 0.1246 seconds
test_4_append 0.1555 seconds 0.0863 seconds
test_4b_append 0.1521 seconds 0.0840 seconds
test_5_fileinfo 0.4854 seconds 0.2825 seconds
test_6_read_1024 4.3047 seconds 1.2699 seconds
test_6b_read_512 4.4377 seconds 1.1854 seconds
test_6c_read_256 6.0634 seconds 1.7323 seconds
test_6d_read_128 9.6558 seconds 2.6062 seconds
test_6e_read_64 14.4697 seconds 4.5069 seconds
test_6f_read_32 24.8038 seconds 7.7512 seconds
test_6g_read_16 52.2430 seconds 15.5660 seconds
test_7_read_8 74.0824 seconds 21.8323 seconds
test_9_readdir 2.4713 seconds 1.0116 seconds
test_del_file 0.0014 seconds 0.0008 seconds
test_del_tempdir 0.0010 seconds 0.0004 seconds
Score(higher is better) 124 413

树莓派1和树莓派2的性能对比(2):Synthetic MySQL BenchMark

2015年3月22日 没有评论

系列文章:

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

上次树莓派1和Cubieboard对比的地址为:

树莓派和Cubieboard对比测试(3) – Synthetic MySQL BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Synthetic MySQL BenchMark
test_db_setup 1.3504 seconds 0.4811 seconds
test_distinctcolumn 6.0972 seconds 2.0539 seconds
test_fetcharray 3.4702 seconds 1.0954 seconds
test_fetchassoc 3.1557 seconds 1.0263 seconds
test_fetchlength 3.1741 seconds 1.0148 seconds
test_fetchrow 3.1540 seconds 1.2152 seconds
test_fieldflags 13.0071 seconds 3.5117 seconds
test_maxget 2.8478 seconds 0.8929 seconds
test_numfields 8.9720 seconds 2.2549 seconds
test_numrows 10.1692 seconds 2.2571 seconds
test_rowcount 1.0088 seconds 0.2399 seconds
test_sort 15.3296 seconds 4.1467 seconds
test_sort2 16.1388 seconds 4.1016 seconds
test_sort3 15.2947 seconds 4.1456 seconds
test_sumcolumn 2.8440 seconds 0.9381 seconds
test_write 1.3475 seconds 0.3367 seconds
test_write2 1.3922 seconds 0.3848 seconds
test_write3 1.4473 seconds 0.3876 seconds
test_write_cleanup 0.0107 seconds 0.0044 seconds
Score(higher is better) 145 524

树莓派1和树莓派2的性能对比(1):Synthetic PHP BenchMark

2015年3月22日 没有评论

两代树莓派硬件的主要区别是,主频高了一些,cpu变成了4核,ram变成了1GB。

上次树莓派1和Cubieboard对比的地址为:树莓派和Cubieboard对比测试(2) – Synthetic PHP BenchMark

Pi Pi2
PHP version 5.6.6
MySQL version 5.5.5-10.0.17-MariaDB-log
Server Software Apache/2.4.12 (Unix) PHP/5.6.6
Synthetic PHP BenchMark
test_arithmetic 0.2261 seconds 0.1105 seconds
test_array_operators 0.2856 seconds 0.1700 seconds
test_bitwise 0.0383 seconds 0.0216 seconds
test_casting 1.3268 seconds 0.3272 seconds
test_chr_fixed 1.8898 seconds 0.5745 seconds
test_chr_hardcoded 0.4025 seconds 0.1578 seconds
test_chr_var 1.8833 seconds 0.5317 seconds
test_comment_loop 0.1064 seconds 0.0676 seconds
test_compare 0.1038 seconds 0.0417 seconds
test_compare_false 0.0056 seconds 0.0033 seconds
test_compare_invert 0.0084 seconds 0.0041 seconds
test_compare_strict 0.0084 seconds 0.0052 seconds
test_compare_unstrict 0.0307 seconds 0.0145 seconds
test_constants 0.1514 seconds 0.0500 seconds
test_crc32 0.1210 seconds 0.0352 seconds
test_do_while 0.4012 seconds 0.2534 seconds
test_do_while_break 0.0931 seconds 0.0541 seconds
test_empty 0.0057 seconds 0.0038 seconds
test_empty_loop 0.1062 seconds 0.0676 seconds
test_foreach 1.9737 seconds 0.8063 seconds
test_get_class 0.1385 seconds 0.0381 seconds
test_global_scalar_assign 0.0477 seconds 0.0266 seconds
test_global_string_assign 0.3587 seconds 0.1446 seconds
test_if_constant 0.0131 seconds 0.0090 seconds
test_increment 0.1622 seconds 0.0494 seconds
test_is_array 0.0365 seconds 0.0123 seconds
test_is_object 0.0396 seconds 0.0124 seconds
test_is_type 0.1358 seconds 0.0442 seconds
test_isset 0.0076 seconds 0.0045 seconds
test_line 0.0099 seconds 0.0065 seconds
test_local_array_assign 0.8565 seconds 0.3604 seconds
test_local_boolean_assign 0.0727 seconds 0.0316 seconds
test_local_float_assign 0.0731 seconds 0.0319 seconds
test_local_hash_assign 0.0685 seconds 0.0314 seconds
test_local_integer_assign 0.1053 seconds 0.0319 seconds
test_local_object_assign 0.0809 seconds 0.0280 seconds
test_local_scalar_assign 0.1006 seconds 0.0448 seconds
test_local_string_assign 0.2859 seconds 0.1169 seconds
test_md5 0.1953 seconds 0.0662 seconds
test_microtime 0.6788 seconds 0.2107 seconds
test_mt_rand 0.0649 seconds 0.0216 seconds
test_ord 6.4353 seconds 2.2288 seconds
test_ordered_functions 1.0930 seconds 0.4972 seconds
test_ordered_functions_references 0.9427 seconds 0.4826 seconds
test_preg_match 0.4483 seconds 0.1258 seconds
test_rand 0.0735 seconds 0.0223 seconds
test_references 0.0108 seconds 0.0072 seconds
test_sha1 0.2715 seconds 0.0810 seconds
test_string_append 0.2736 seconds 0.0996 seconds
test_strlen 0.0459 seconds 0.0127 seconds
test_switch 0.3535 seconds 0.1650 seconds
test_time 0.0618 seconds 0.0256 seconds
test_unordered_functions 1.1314 seconds 0.5539 seconds
test_variable_variables 0.1076 seconds 0.0407 seconds
test_while 0.4435 seconds 0.2794 seconds
Score(higher is better) 410 1082

PHP has encountered an Access Violation at 0142AC6A 错误解决

2010年4月29日 没有评论

这个是PHP的一个常见错误,我是在安装wordpress的时候遇到的,很多在Windows上面跑PHP的朋友都见过,也有人写了各种各样的解决办法。但是都是几年以前的解决办法。我觉老办法不一定能解决当前的问题,我遇到的这个问题就是。

我遇到的这个问题的解决相当偶然,一年以前就是就是这个问题促使我从wordpress转换成BlogEngine.NET上面,今年想用wordpress的时候又出问题来了。当时由于用的Windows 2008 x64,所以我把问题归于PHP不支持64位的IIS,但是现在我已经换成x86的Windows 2003还有这个问题就说不过去了。我于是试着把PHP的扩展都去掉,发现错误信息变成了没有找到mysql的支持库。

于是问题简单了,检查发现php 5.2.13里面的libmysql.dll明显比机器上面的mysql版本旧的多,显然错误出现是由于php 5.2.13在build时候引用的libmysql和机器上引用libmysql的不一致。我们观察系统的path路径以后,发现我在安装的mysql的时候选择了将mysql的路径加入到path当中,这样mysql的libmysql会优先于php目录下面的libmysql加载,于是造成了问题。

image

明白来原因那么解决问题的方法也简单了,在path中也加入php的路径,并放到mysql的路径之前。重新启动iis以后,这个问题就不再出现了。

分类: MySQL, PHP 标签: ,

MySQL和PostgreSQL的DAAB

2007年5月20日 没有评论

最近在研究EntLib2.0的DAAB。DAAB的特性之一是可以使我们在编写代码的时候不必关心数据库到底是什么,也就是DAAB可以当作数据库抽象层。但是你得有你要使用的数据库在这个抽象层之下的驱动。

我们知道现在开源关系数据库主要有两个,一个是MySQL,一个是PostgreSQL。这两个数据库现在都有现成的开源.NET Data Provider。由于微软也提供了EntLib2.0的源代码,这样我们很容易仿照其SQL Server的DAAB Database Provider写出他们在抽象层之下的驱动。我试着写了一下,MySQL的部分实现了,PostgreSQL的完全没有实现。

MySQL的DAAB Database Provider除了XmlReader相关的部分,其他部分都实现了。这是由于MySQL的.net connecter虽然是仿照SQLServer的.NET Database Provider来定义的接口,但是.NET Framework 2.0新增的一些内容还没有实现,MySQL对于XML的支持也不如SQL Server那么完善。

PostgreSQL的DAAB Database Provider完全没有实现。和MySQL的.NET Database Provider类似,PostgreSQL的Npgsql也没实现XmlRaeder的功能,除此以外,Npgsql的NpgsqlCommand对象竟然没有继承DbCommand, ICloneable,导致在一些NpgsqlCommand强制转换的情景下会失败。这个情况导致了PostgreSQL的DAAB Database Provider没办法实现。

比较MySQL和PostgreSQL对.NET的支持,看来是MySQL更胜一筹。

为了解决使用Entlib的DAAB来访问PostgreSQL的问题,估计可能得写一个ODBC的DAAB Database Provider了。研究了一下ODBC的.NET Database Provider的情况,似乎ODBC和MySQL的情况类似,在.NET Framework2.0的类库里面并没有对XmlReader支持,估计仍然不能实现ODBC的DAAB Database Provider的XmlReader部分。