返回列表 发帖
来。关于区分大小写问题,我们补充一个基本知识。
关于区分大小写问题,sqlserver是可以区分的,默认是不区分。

那么怎么样做到可以区分呢?
我们在create table时经常会碰到这样的语句,例如:CityName nvarchar(10)collate chinese_prc_ci_as null,那它到底是什么意思呢?

Windows_collation_name 是 Windows 排序规则的排序规则名称。参见 Windows 排序规则名称。
SQL_collation_name 是 SQL 排序规则的排序规则名称。参见 SQL 排序规则名称。

排序规则名称由两部份构成,前半部份是指本排序规则所支持的字符集。
如:
  Chinese_PRC_CS_AI_WS
前半部份:指UNICODE字符集,Chinese_PRC_指针对大陆简体字UNICODE的排序规则。
排序规则的后半部份即后缀 含义:
  _BIN 二进制排序
  _CI(CS) 是否区分大小写,CI不区分,CS区分
  _AI(AS) 是否区分重音,AI不区分,AS区分   
  _KI(KS) 是否区分假名类型,KI不区分,KS区分 
    _WI(WS) 是否区分宽度 WI不区分,WS区分 


ok.结束,别说的那么绝对,撒sqlserver不区分大小写

TOP

原帖由 马小玲的眼泪 于 2007-6-28 15:44 发表
虽然各位尚未解决,但依然感谢各位的热心,暂奉上微薄积分。。

如果哪位朋友机器上恰好装了VB+SQL,能够帮忙调试,那就大好了。。


问题是你好多方法都是封装好的..

比如那ExecuteSQL..
其实时间总是那么快

TOP

LZ  那个错我帮你改了

但是完全编译发现错误无数

这东西哪载来的?

TOP

原帖由 .lemon. 于 2007-6-28 15:47 发表



你真的去试了么?



恩...






改了语句里的 C_Kno 字段为小写的 C_kno 就报错
SqlServer2000 和 SqlServer2005 都一样

TOP

报在这句上?

If return_count = 0 Or return_count = "0" Then
其实时间总是那么快

TOP

原帖由 .lemon. 于 2007-6-28 15:56 发表

我22楼是对20楼讲的- -||||

楼上再试下我23楼的代码

编译错误:
属性的使用无效

TOP


我22楼是对20楼讲的- -||||

楼上再试下我23楼的代码


[ 本帖最后由 .lemon. 于 2007-6-28 15:58 编辑 ]
其实时间总是那么快

TOP

原帖由 .lemon. 于 2007-6-28 15:47 发表



你真的去试了么?

可能试的方法有问题吧,能把具体问题说明白吗。。- -

TOP

        Dim mrc As ADODB.Recordset
        Dim strmsg As String
        txtSQL = "select count(*) from userinfo where UID='" & Trim(txtUserName.Text) & "' and PWD='" & Trim(txtPassword.Text) & "'"
        mrc = ExecuteSQL(txtSQL, strmsg)
        Dim return_count
        return_count = mrc.Fields(0)
        If return_count = 0 Or return_count = "0" Then
            MsgBox(" 用户名不存在或密码错误!", vbExclamation + vbOKOnly, "警告")
        End If
        OK = True
        frmMain.Show()
        Unload(Me)



再试下.. 应该没问题的啊..
其实时间总是那么快

TOP




你真的去试了么?
其实时间总是那么快

TOP

虽然各位尚未解决,但依然感谢各位的热心,暂奉上微薄积分。。

如果哪位朋友机器上恰好装了VB+SQL,能够帮忙调试,那就大好了。。

TOP

原帖由 .lemon. 于 2007-6-28 14:58 发表


8区别的..自己开查询分析器试下不就知道了..



字段名和表名怎么会不区分大小写呢.. 又不是SQL命令

你userinfo 这个表里的UID字段是大写的话

Select uid form userinfo 这句在分析器里是报错的..

TOP

头晕了..

VB的语法什么我真不大记得路 反正就是


txtSQL = "select count(*) from userinfo where UID='" & Trim(txtUserName.Text) & "' and PWD='" & Trim(txtPassword.Text) & "'"


这段SQL执行的结果,算出同时符合你文本框输入的UserName和Password 的值的数量..

它返回在纪录集里的,就一条纪录:符合结果的数量,如果这个数量=0说明没有这条数据..登陆失败..


你原来PW条件后面还有点问题.. 第一个等号后面不应该用两个双引号. 改了下.


[ 本帖最后由 .lemon. 于 2007-6-28 15:36 编辑 ]
其实时间总是那么快

TOP

嗯, 是有问题。。

TOP

不对..

VB声明变量是Dim吧?

= =

常时间不用都忘光了..改了下


[ 本帖最后由 .lemon. 于 2007-6-28 15:25 编辑 ]
其实时间总是那么快

TOP

返回列表