我说的是用最少的代码,而不是写一个很大的程序(傻逼也会做)比如用getstring 一句代码取出全部字符串,是这个意思,继续讨论讨论

解决方案 »

  1.   

    是 UPDATE 吗?还是不更新数据库仅仅显示?
      

  2.   

    update table
    set field = field + '这是一个字符串'
      

  3.   

    不要在 vb 版骂人,好不好? 
    ========================
    你知道 每个 字段类型 吗? Text ,Memo 类型中 需要加 这个字符串 吗?
    在 Text 类型中的 数字 前面 也要 加吗?
      

  4.   

    select f1 + '这是一个字符串' from T
      

  5.   

    现在的意思是说:1。遍历全部数据库中的所有表,所有字段,所有数据,然后分析字段类型(当然是未知的)如果是字符串格式,就更新2。要求代码尽可能的短,快-------------------打个比方吧
    for i=1 to rst.Fields.Count-1
    if rst.Fields(i).type=xxx then
    rst.Fields(i).Value=xxxxxxxxxxxxxxxxx
    end if 这个意思,现在要遍历全部数据库
      

  6.   

    不是问update addnew这些东西
      

  7.   

    '得到所有的表名
        Set RS = CN.OpenSchema(adSchemaTables)
        cobTable.Clear
        Do Until RS.EOF
            If RS("TABLE_TYPE") = "TABLE" Then
                cobTable.AddItem RS("TABLE_NAME")
            End If
            RS.MoveNext
        Loop
        RS.Close
        Set RS = New Adodb.RecordSet'以下代码是获得一个表的所有字段和类型
            strSql = "select * from " & strTableName
            RS.Open strSql
            Dim m As Integer
            List1.Clear
            List2.Clear
            For m = 0 To RS.Fields.Count - 1
                List1.AddItem RS.Fields(m).Name
                List2.AddItem RS.Fields(m).Type
            Next m
            RS.Close '你自己 再 改一下。 OK ?
      

  8.   

    重复一遍最快的速度,使用ADO把数据库中的全部字符串数据中加上“这是一个字符串”----------------------愿意回答的拿分---------------------不喜欢分的请不要回答,OK?
      

  9.   

    我只问你
    for i=1 to rst.Fields.Count-1
    if rst.Fields(i).type=xxx then
    rst.Fields(i).Value=xxxxxxxxxxxxxxxxx
    end if 有什么不同?代码长了,功能少了,而且程序的要求是设置值,而不是列出就算列出,也应当是先列到变量里,在跳出循环后再进行处理,而不是在循环内部使用控件,在一个大型的程序中,这样至少可以让运算速度快一倍------------------------------你那个代码比我自已写的还差劲,我为什么要用你的改啊????真烦你这种人,好好讨论一点问题也不行,你就算技术好,也不能别人发一点问题一定要你过关批准啊???
      

  10.   

    我对于这种无聊的题目最有兴趣了!
    (哼,要不是看在300分的面子上,我才懒得理你)    Set RS = CN.OpenSchema(adSchemaTables)
        Do Until RS.EOF
            If RS("TABLE_TYPE") = "TABLE" Then
                set RS1=CN.EXECUTE("select * from "+RS("TABLE_NAME"))+" WHERE 1=0":strSQL=""
                FOR I=0 TO RS1.FIELDS.COUNT-1:if RS1.Fields(i).Type=adText then strSQL=strSQL+RS1.FIELDS(I).NAME+"="+RS1.FIELDS(I).NAME+"'这是一个字符串',":Next
                CN.EXECUTE "update "+RS("TABLE_NAME")+" SET "+left(strSQL,len(strSQL)-1)
                RS1.CLOSE:set RS1=NOTHING
            End If
            RS.MoveNext
        Loop
        RS.CloseTNND,居然这样还有11行!还没包括打开数据库的语句。
    我估计是很难再短了。老兄你看呢?
      

  11.   

    我还跟。啊,少了一个+号,靠想象写程序还真费体力。
    关键的一句应该是:
    FOR I=0 TO RS1.FIELDS.COUNT-1:if RS1.Fields(i).Type=adText then strSQL=strSQL+RS1.FIELDS(I).NAME+"="+RS1.FIELDS(I).NAME+"+'这是一个字符串',":Next
      

  12.   

    你好﹐試試我的方法看怎么樣﹐我沒有調試過﹐也很久沒用VB了﹐只是讓你看看我的方法罷了﹐請給點意見啊﹐謝謝﹗
    Option Explicit
    Option Compare Text'================================================================
    '功能﹕返回SQL語句
    '參數﹕strTableName 你要進行操作的資料表
    '      bolUpdate 是否需要進行Update﹐因為不知道你是要將所有取出的
    '                的數據加上一個字符串還是將這個加上的字符串UPDATE
    '                到數據庫﹐所以參數讓你選擇
    '      strAdd 要加上去的字符串
    '返回﹕得到SELECT或UPDATE的SQL字符串
    '================================================================
    Function getBuildSql(strTableName As String, strAdd As String, bolUpdate As Boolean) As String
        
        Dim objCN As New ADODB.Connection
        Dim objRst As New ADODB.Recordset
        Dim strCn As String
        Dim strRtSql As String
        Dim iCount As Integer
        Dim i As Integer
        
        strCn = "provider=msdasql.1;server=youServer;database=youDatabasse;uid=sa;pwd=;"
        
        objCN.CursorLocation = adUseClient
        objCN.Open strCn
        
        objRst.CursorLocation = adUseClient
        
        '打開一個只讀向前型的RecordSet 只用于讀取數據類型
        objRst.Open "SELECT * FROM " + strTableName + " WHERE 1=2", objCN, adOpenForwardOnly, adLockBatchOptimistic
        
        iCount = objRst.Fields.Count
        
        If bolUpdate Then
            With objRst
                
                For i = 0 To iCount - 1
                    If IsStringType(.Fields(i).Type) Then
                         strRtSql = strRtSql & .Fields(i).Name & "+" & strAdd & ","
                    Else
                         strRtSql = strRtSql & .Fields(i).Name & ","
                    End If
                Next
                
                If Right(strRtSql, 1) = "," Then
                    strRtSql = Left(strRtSql, Len(strRtSql) - 1)
                End If
                
                strRtSql = "SELECT " & strRtSql & " FROM " & strTableName
                
            End With
        Else
            With objRst
                For i = 0 To iCount - 1
                    If IsStringType(.Fields(i).Type) Then
                        strRtSql = strRtSql & .Fields(i).Name & "=" & .Fields(i).Name & "+'" & strAdd & "'"
                    End If
                Next
                
                If Right(strRtSql, 1) = "," Then
                    strRtSql = Left(strRtSql, Len(strRtSql) - 1)
                End If
                
                strRtSql = "Update " & strTableName & " Set " & strRtSql
            End With
        End If
        
        objRst.Close
        Set objRst = Nothing
        
    End Function
    '===========================================================================
    '功能﹕得到Adodb.Field 對象的字段類型
    '參數﹕intFieldType 字段類型
    '返回﹕返回轉換后的字段類型(Integer)
    '===========================================================================
    'Public Function GetFieldType(intFieldType As Integer) As Integer
    '    Select Case intFieldType
    '        Case 3, 20, 14, 5, 131, 4, 2, 16, 21, 19, 18, 17, 139
    '            GetFieldType = fieldTypeNumeric
    '        Case 11, 6, 1
    '            GetFieldType = fieldTypeBoolean
    '        Case 8, 129, 201, 203, 200, 202, 130
    '            GetFieldType = fieldTypeString
    '        Case 7, 133, 134, 135, 64
    '            GetFieldType = fieldTypeDateTime
    '        Case Else
    '            GetFieldType = fieldTypeOther
    '    End Select
    'End Function
    '===========================================================================
    '功能﹕檢查Adodb.Field 的字符串類型是否是字符串
    '參數﹕intFieldType 字段類型
    '返回﹕true 表示是﹐false 表示不是
    '===========================================================================
    Public Function IsStringType(intFieldType As Integer) As Boolean
          Select Case intFieldType
                Case 8, 129, 201, 203, 200, 202, 130
                    IsStringType = True
                Case Else
                    IsStringType = False
          End Select
    End Function
      

  13.   

    to junglerover(灌木丛)我对于这种无聊的题目最有兴趣了!???????????题目还分什么无聊不无聊?
    十行代码就真的十行啊?,一百行也可以啊,整天只知道争强好胜,没长进的东西自已先看看能不能用再拿出来好不好?