RSS 2.0 Feed
2003-09 Entries
摘要:这几天的SQL CE 编程,基本上还算顺利。 SQL CE确实是个很强大的数据库。 这里说的强大不是指性能 , 具体性能还需要在今后的编程和实际使用中体会,其实我也不指望以PPC的配置能够达到多高的性能,够用就可。SQL CE的强大首先体现在和SQL Server 2000 PC服务器版的高度融合。SQL CE不仅有和SQL SERVER及其类似的结构和功能,还提供了 RDA 和 Repication 两种和SQL SERVER的沟通方式。RDA可以方便地实现双方数据的PUSH和PULL,而 Repication 进一步实现了两者的同步,想一想,PPC和SERVER上的数据库由系统自动完成同步,那可太方便了。这是PDA真正实现行业应用必须具备的功能。 不过SQL CE毕竟只是SQL SERVER 2000的一个子集,功能还是有限的。今天就发现SQL CE的SQL语句中不支持 TOP N。...[阅读全文]

posted @ | Feedback (4) |

摘要:又是一个困扰一个星期的问题,安装SQL CE 2.0 Server Tools 老是不成功,弹出的错误信息是: SQL Server CE Server Tools is compatible only with SQL Server 2000 service Pack 1 and higher, when you install SQL Server Tools on a computer running both IIS and SQL Server 2000, ensure the installer for SQL Server CE Server Tools corresponds to the version of SQL Server 2000. 就是说sql ce认为我的sql server 2000 sp版本号不对。 我试过几种配置:XP Pro + Sql server 2000 desktop ver + sp3W2000 Adv Server + Sql server 2000 enterprise ver + sp3XP Pro + Sql server 2000 develop ver + sp3 都不成功。按理sp3符合sp1 or higher的要求啦?而且奇怪的是别人都说在sp3上直接装没有问题,真是奇怪呀。没办法,只好去 news group 问,第三天终于得到回答,让我到这里看。老天,原来对应sql server sp3,Sql ce 2.0 也有个sp3。立即down下来,安装成功。...[阅读全文]

posted @ | Feedback (23) |

摘要:SQL Server CE 2.0 自带了一个配置工具,这是1.0版本中没有的。配置工作基本上可以用这个工具完成。但如果你想知道它到底都干了些什么,可以按照下面的步骤自己做一次。其实那个工具就是完成以下功能。 1) 在c:\inetpub\wwwroot\下建一个目录,比如c:\inetpub\wwwroot\northwind。其实你在别的目录建也是没有问题的,这里只是为了方便。 2) 把 sscesa20.dll 文件从安装目录中拷贝到上面那个目录中。省缺的安装目录应该是:c:\Program Files\Microsoft SQL Server CE 2.0\Server 3) 打开一个命令窗口,执行以下命令:regsvr32 C:\Inetpub\wwwroot\NorthWind\sscesa20.dll 4) 打开Internet Services Manager 建立名字为'Northwind'的虚拟目录,将其指向 C:\Inetpub\wwwroot\northwind。在 Access Permissions list 中选择 'Execute'。 5) 再来配置额外属性。右键点击 'Northwind',选择 'Properties' 选择 Directory Security 页,在Authentication Methods 选择 Anonymous user account - it is usually something like IUSR_PCNAME. If you are running IIS and the SS CE Server agent on the same PC then we can use the default settings as shown here:   Now let's configure the SQL Server CE Server Agent permissions - we need to configure directory authorisation & file permissions File Permissions Even though IIS authenticates the client you still need to configure......[阅读全文]

posted @ | Feedback (3) |

摘要:昨天开始就接到用户报告,无法upload image。开始以为是没有升级的问题,昨晚马上将 database server 升级到全满,但还是不行。在server上直接运行,得到错误信息是timeout。这下就奇怪了,为什么读出image没问题,写入就有问题呢? 我们的系统是用 sql server 2000 保存image的,这样的好处是方便管理,但坏在数据库巨大。经过一整天的跟踪调试,没有发现程序有任何问题。将巨大的图形数据库拷回本地还原后也没有问题。但后来发现一个奇怪现象,删除数据库中的一个image纪录后,就可以再加入一个image记录,但再加又出错,难道是数据库空间不够了?检查数据库属性:数据库1.2G,space availible space 47MB,好像没有问题呀?但我还是调整了一下File grouth,将原来的 By percent 10 改为 In megabytes:50。保存设置后,再测试,发现问题居然解决了!!!这时候再次察看属性:数据库2G,space available 103MB,增大了不少,看来问题确实在于数据库空间不够。不过奇怪的是为什么sql server 自动增加空间的功能会出错呢?硬盘空间是足够的,还有10多G。我们server的配置是 Sql server 2000 enterprise + sp3 ...[阅读全文]

posted @ | Feedback (3) |

摘要:这两个星期由于种种原因,PPC编程一直没有进展。其中一个困扰的问题就是与ViewList控件有关。在From Design状态下double click一个控件自动弹出的事件是 SelectedIndexChanged 。按道理这个事件可以用于相应用户点击List中的选项,但奇怪的是,我的程序响应这个事件后经常出错,都是系统错误。不巧的是最近家里没有Internet,公司里又太忙,一直没有找出原因。昨天利用长假期的最后一天冒着中蠕虫的危险拨号上网,查找文章又跟踪良久,终于发现原因所在。跟踪结果表明,这个事件至少在以下几个情况下会被触发:add或者delete List中item的时候,用户点击另一个item的时候会被触发两次,一次是上一个选择消失,一次是新item被选择。在以上情形中,其实只有第三个是我们真正需要的。而前两个情况下由于实际上没有item被选择,如果直接去读取被选项的值就可能会导致系统溢出。所以结论是在使用这个事件时必须首先判断是否有item被选择。private void SearchList_SelectedIndexChanged(object sender, System.EventArgs e){if (SearchList.SelectedIndices.Count>0){rcode=SearchList.Items[SearchList.SelectedIndices[0]].Text;rname=SearchList.Items[SearchList.SelectedIndices[0]].SubItems[1].Text;}}由于.NET Compact Framework 只是 .NET Framework的一个子集,所以.NET CF 并不是完全兼容 .NET Framework。ViewList就是一个例子。粗略估计一下,CF中的ViewList只支持大约30%的属性和方法,一些重要的属性没有兼容,例如SelectedItem,而在网上能找到的.NET编程资料大多是使用这个属性及其方法。...[阅读全文]

posted @ | Feedback (1) |

摘要:前两天偶然看到一个SQL查询程序,利用SqlCommand的Parameters.Add功能,高效而且安全,今天正好用上这个新写法.cmdTmp1.CommandText="INSERT INTO  Medi_NSFBill (Message,TypeCode) VALUES (@p1,@p2)";cmdTmp1.Parameters.Clear();cmdTmp1.Parameters.Add(new SqlParameter("@p1",SqlDbType.VarChar,512));cmdTmp1.Parameters["@p1"].Value=message;cmdTmp1.Parameters.Add(new SqlParameter("@p2",SqlDbType.Int));cmdTmp1.Parameters["@p2"].Value=2001;cmdTmp1.ExecuteNonQuery();cmdTmp1.Parameters.Clear();这个写法的好处是:1 利用SqlCommand的参数自动检查特性过滤非法字符,2 避免STRING串相加的低效率工作坏处是:代码冗长 ...[阅读全文]

posted @ | Feedback (6) |