以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何获取sql数据库是字符型还是备注型  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=186458)

--  作者:lihe60
--  发布时间:2023/5/5 9:23:00
--  如何获取sql数据库是字符型还是备注型
如题
--  作者:有点蓝
--  发布时间:2023/5/5 9:46:00
--  
字符长度小于等于255就是字符型
--  作者:lihe60
--  发布时间:2023/5/5 10:03:00
--  
如果是备注型,就会有错误提示。无法进行了。
--  作者:有点蓝
--  发布时间:2023/5/5 10:03:00
--  
什么错误?
--  作者:lihe60
--  发布时间:2023/5/5 10:09:00
--  
这是提示  "数据类型 ntext 和 varchar 在 equal to 运算符中不兼容。"



Dim name1 As String = "用友175"
Dim cmd As New SQLCommand
cmd.ConnectionName = name1
Dim lst As List(Of String)
lst = Connections(name1).GetTableNames
For Each nm As String In lst
    cmd.com/mandtext = "sel/ect * from " & nm & " where 1=2"
    For Each dc As DataCol In cmd.ExecuteReader().DataCols
        If dc.isstring Then
        \'    Output.Show(nm & "  " & dc.name)
            cmd.comma/ndtext = "sel/ect count(*) from " & nm & " where " & dc.name & "=\'2ef92ea1-0cbf-4661-b6d5-a797011061ef\'"
            If cmd.ExecuteScalar() > 0 Then
                Output.Show(nm & "  " & dc.name)
            End If
        End If
    Next
  \'  Exit For
Next

--  作者:有点蓝
--  发布时间:2023/5/5 10:12:00
--  
到后台数据库把备注列类型ntext 改为nvarchar(max)
--  作者:lihe60
--  发布时间:2023/5/5 10:20:00
--  
这个列类型是别人的数据库,不能改。还有其他办法吗?
--  作者:有点蓝
--  发布时间:2023/5/5 10:28:00
--  
ntext 类型的列不能直接用到查询条件里,不能改就要做下转换,不过查询效率就低很多了