本人用VC++6.0和SQL数据库做的一个项目要求保持数据之前的在不同数据库传递的时候尽可能的一致。现在出现一个问题是本地和服务器上的字段差距有点大有30多个字段,我的想法是用可以在本地和服务器上的传送的一个特定字段来保全丢失的那些字段。
本人是新手,有想法,想用‘,’把各个字段分开后合并到一个字段中再传上到服务器上保存。之后再从服务器上下下来分离相应的字段和本地字段再一一对应上。本地字段不能为了一个服务器上进行修改,所以特意向高手们请教。
    本人的邮箱是[email protected]
解释的时候越详细越好,先谢谢帮忙和路过的朋友了!

解决方案 »

  1.   

    CString  stra;
    stra=a+","+b+","+c//  a b  c  为本地字段的值
    把stra 再传上到服务器上保存在你定义的字段中,比如为f需要用时,取出字段f的值,用字符串分解函数将它分解为 a  b  c
    s
      

  2.   

    yangjinming8888 
    “CString  stra; 
    stra=a+","+b+","+c//  a b  c  为本地字段的值 
    把stra 再传上到服务器上保存在你定义的字段中,比如为f ”这上半段我会用也打算这么做,下半段中“需要用时,取出字段f的值,用字符串分解函数将它分解为 a  b  c ”
    字符串分解函数  这个我不太懂,能不能也像上半段来个例子解释下,可以吗?
      

  3.   

    分解,可以用CString::Find, CString::Mid
    或者strtok()
      

  4.   

        那我就再次用简单的话来说明这个问题,就是我想把两个不同的数据库A,B:
    数据库A中的字段T来存储数据库A,B之间不同的字段,字段T是两个数据库都可以传递的字段。
         现在问题是我可以把A的所有字段 发送给B,而从B往A传的话数据会丢失。我无权改动A,B的字段,同时要求我保证A,B数据尽可能的一致。B数据库有特殊格式要求,要求用的是VCARD格式。
         
      

  5.   

    CString::Find, CString::Mid 方法不行,strtok()函数我一会试试。
      

  6.   

    CString str="xx,yy,zz";// char *csInput; csInput=str.GetBuffer(str.GetLength()); //提取字符串,把单词存放在数组csInput中 char seps[]= ",";   
    char *token; token = strtok( csInput, seps ); 
    int index=0;          
    while( token != NULL )          
        { 
        csEditInput[index]=token;    /* 把单词存放在数组csEditInput中" */ 
        index++; 
        token = strtok( NULL, seps ); /* Get next token: */ 
        }
      

  7.   

    谢谢yangjinming8888 的详细解答!
      

  8.   

    哦,原来是字符串的分解啊
    如果很固定的话,而且不包含空格的话
    可以用空格区分每个字段
    接下来
    定义n个变量,n=字段数
    用sscanf就能一次性解析完所有字段,这是最快最方便的,当然前提是字段数固定,不包含空格
      

  9.   

    那就在A和B之间的传递加一个中介,那就是T了。