zoukankan      html  css  js  c++  java
  • WCHAR的相关操作 范例 , 同时也是产生创建Sqlserver语句新表的 Sql

    int gsz_CreateSql_NEWTable(WCHAR product_SN[],int product_SN_size, WCHAR WCHAR_Array_Sql[],int  WCHAR_Array_Sql_size)
    {
        //第一步:定义一个WCHAR 数组,用于存储合成得到的新表名字
        WCHAR new_table_name[50] = { 0 };//最后一个里面是''
    
        //第二步:定义一个WCHAR 数组。用于存储合成得到的时间
        WCHAR date[16] = { 0 };
        SYSTEMTIME time;
        GetLocalTime(&time);
        swprintf_s(date, _T("%d%02d%02d_%02d%02d%02d"), time.wYear, time.wMonth, time.wDay, time.wHour, time.wMinute, time.wSecond);
    
        //第三步:定义一个WCHAR 数组。用于存储表的前缀
        WCHAR gsz_Table_[7] = L"Table_";//16-bit UNICODE character
    
        //第四步:定义一个WCHAR 数组。用于存储产品的SN
        //WCHAR gsz_product_SN[50] = L"SN0123456789";//16-bit UNICODE character
        WCHAR gsz_product_SN[50] = { 0 };
        memcpy(&gsz_product_SN[0], product_SN,  product_SN_size * sizeof(WCHAR));
    
        //第五步:开始合成新表的名字
        memcpy(&new_table_name[0], gsz_Table_, wcslen(gsz_Table_) * sizeof(WCHAR));//内存基本操作:将gsz_Table_里面的值写入
        memcpy(&new_table_name[6], date, wcslen(date) * sizeof(WCHAR));//内存基本操作:将gsz_Table_里面的值写入
        memcpy(&new_table_name[21], gsz_product_SN, wcslen(gsz_product_SN) * sizeof(WCHAR));//内存基本操作:将gsz_Table_里面的值写入
        int len_new_table_name = wcslen(new_table_name);//获取新表的名字的长度,后面要用到
        printf("新表的名字: %ls
    ", new_table_name);
        printf("新表名的长度: %d
    ", len_new_table_name);
    
    
    
        //范例: L"select * into [Test_Noise_Gsz].[dbo].[Table_2021_0821_1324] from [Test_Noise_Gsz].[dbo].[Table_wan_zheng] ";// 200个字节
        //甲: 定义一个WCHAR数组, 用于存放Sql语句,这个语句可以根据旧表创建新表。
        WCHAR gsz_WCHAR_Array_Sql[200] = { 0 };
        int  gsz_WCHAR_Array_Sql_len = wcslen(gsz_WCHAR_Array_Sql);//此函数返回宽字符串的长度
    
        //乙:Sql语句的前缀
        WCHAR gsz_Sql_QianZhui[50] = L"select * into [Test_Noise_Gsz].[dbo].[";
    
        //丙:Sql语句的后缀
        WCHAR gsz_Sql_HouZhui[50] = L"] from [Test_Noise_Gsz].[dbo].[Table_wan_zheng]";
    
        //丁:将前缀合成到 Sql语句里面
        memcpy(&gsz_WCHAR_Array_Sql[gsz_WCHAR_Array_Sql_len], gsz_Sql_QianZhui, wcslen(gsz_Sql_QianZhui) * sizeof(WCHAR));
        gsz_WCHAR_Array_Sql_len = wcslen(gsz_WCHAR_Array_Sql);//此函数返回宽字符串的长度
        printf("最终得到的Sql语句: %ls
    ", gsz_WCHAR_Array_Sql);
    
        //戊:将新的表名字 合成到Sql语句里面
        memcpy(&gsz_WCHAR_Array_Sql[gsz_WCHAR_Array_Sql_len], new_table_name, len_new_table_name * sizeof(WCHAR));
        gsz_WCHAR_Array_Sql_len = wcslen(gsz_WCHAR_Array_Sql);//此函数返回宽字符串的长度
        printf("最终得到的Sql语句: %ls
    ", gsz_WCHAR_Array_Sql);
    
        //己:将后缀 合成到Sql语句里面
        memcpy(&gsz_WCHAR_Array_Sql[gsz_WCHAR_Array_Sql_len], gsz_Sql_HouZhui, wcslen(gsz_Sql_HouZhui) * sizeof(WCHAR));
        gsz_WCHAR_Array_Sql_len = wcslen(gsz_WCHAR_Array_Sql);//此函数返回宽字符串的长度
    
        //庚:打印出来
        printf("最终得到的Sql语句: %ls
    ", gsz_WCHAR_Array_Sql);
        printf("content end
    ");
        //辛:将数据通过参数返回
        memcpy(&WCHAR_Array_Sql[0], gsz_WCHAR_Array_Sql, gsz_WCHAR_Array_Sql_len * sizeof(WCHAR));
        return 1;
    }

    ***********

    使用

    int main()
    {
        //定义SN
        WCHAR gsz_product_SN[50] = L"SNW0123456789";//16-bit UNICODE character
        //定义Sql变量
        WCHAR gsz_WCHAR_Array_Sql[200] = { 0 };
        //给Sql变量赋值
        gsz_CreateSql_NEWTable(gsz_product_SN, wcslen(gsz_product_SN),gsz_WCHAR_Array_Sql,1);
        //输出结果
        printf("返回的Sql语句: %ls
    ", gsz_WCHAR_Array_Sql);
    
    }
  • 相关阅读:
    HDU 6071
    HDU 6073
    HDU 2124 Repair the Wall(贪心)
    HDU 2037 今年暑假不AC(贪心)
    HDU 1257 最少拦截系统(贪心)
    HDU 1789 Doing Homework again(贪心)
    HDU 1009 FatMouse' Trade(贪心)
    HDU 2216 Game III(BFS)
    HDU 1509 Windows Message Queue(队列)
    HDU 1081 To The Max(动态规划)
  • 原文地址:https://www.cnblogs.com/wenluderen/p/15169811.html
Copyright © 2011-2022 走看看