C测试小程序
1、 字符串类
1.1 strstr
功能:查找和获取子串
void test_strstr()
{
char *str="Borland International";
char *str1="B",*ptr1;
char *str2="na",*ptr2;
char *str3="",*ptr3;
ptr1=strstr(str,str1);
printf("The substring1 is: %s\n", ptr1);//Borland International
ptr2=strstr(str,str2);
& ......
如转载,请注明出处:http://blog.csdn.net/zhangyang0402/archive/2010/05/01/5549266.aspx
开发工具:VC ++ 6.0 MASM32
一、__cdecl调用方式
1. 在VC中新建Win32 Console Application, TestASM
2. 新建test.c
#include<stdio.h>
extern void swap(int *px, int *py);
int main(void)
{
int a=1, b=2;
printf("before swaping, a=%d, b=%d\n", a, b);
swap(&a, &b);
printf("after swaping, a=%d, b=%d\n", a, b);
return 0;
}
3. 使用UltraEdit编辑汇编程序swap.asm
.386
.MODEL FLAT, C
OPTION CASEMAP:NONE
.CODE
swap PROC a:DWORD, b:DWORD
PUSH ESI
PUSH EDI
MOV ESI, [EBP+8]
MOV EAX, [ESI] ;参数1的值->EAX
MOV EDI, ......
或多或少都做过树状目录、产品分类之类的二级或三级菜单,如果遇到更多级的分类,就一般使用递归了。在程序中使用递归或多或少会增加一些性能上的开销。
之前我用ASP.net在程序中实现过非递归的无限级分类目录,但考虑到移植性不强,就改成了存储过程,发出来大家共同研究一下,到目前为止,测试过程中还没发现问题,另外,代码方面没经过什么优化。
通常情况下,我们更多的操作是读取目录,所以,在下面的实现中,读取我们只需要一Select语句就够了,不使用递归,理论上无限级~!
===================================================
表结构:
表名:Tb_Column
表结构(所有字段非空):
Column_ID int 主键(注:非标识)
Column_Name nvarchar(50)分类名称
Parent_ID int 父分类ID(默认值0)
Column_Path nvarchar(1000) 分类路径
Column_Depth int分类深度(默认值0)
Column_Order int排序(默认值0)
Column_Intro nvarchar(1000)分类说明
================================================
存储过程一:新建分类
CREATE PROCEDURE sp_Column_Insert
(
@ ......
找到一遍讲解三层结构比较清楚易懂的文章,引用一下,留为学习。
三层式开发中的层次划分讨论
先举一个曾经在哪本书上看到的例子:现在你想在1米宽的小溪上建一座桥,你会在上面放块木板就完了。如果想在宽一点的小河上建这桥,你就需要计算木材用料,价格等,如果需要别人帮忙,你还要多一些图纸什么的让别人理解你的想法。现在你要在大江上面建桥,你需要有整体的计划,包括各个方面,比如将来可能的收费和利益分配等问题。
这里讲3层式,其实是针对“大江上面建桥”来的,对于1米宽的小溪,在实际中可能一点用都没有。不过现在我不可能去拿个长江大桥作例子来讲,所以这里还是用这条简单的小溪,讲讲怎么建桥。之所以讲这么多废话,是为了防止部分人看完此文之后“小小一个东西,搞那么麻烦干什么。。”其实这里讲的不是具体的这个例子,而是分层的思想,理解这点非常重要。
下面我就我们大家日常见最多的例子来讲,就是“用户登录”的例子。这个例子很简单,但是麻雀虽小五脏俱全。从数据访问到业务规则到界面全有了。
本文分2个部分,如果只想研究面向对象的思想,对实现已经熟悉,可以跳过第一部分。
第一部分
新建一个空白 ......
上次做了个项目,涉及到数据库的还原和恢复,到网上找了一下,是利用SQLDMO实现的,只要添加SQLDMO引用就好了,然后利用下边的类的方法就可以实现了。
我把原作者的类扩充了一下,可以自动识别web.config里 的数据库连接字符串,可以通过变量设置还原恢复的信息。
需要注意的时还原,还原的时候问题最大了,有别的用户使用数据库的时候无法还原,解决办法就是在MASTER数据库中添加一个存储过程:
create proc killspid (@dbname varchar(20))
as begin declare @sql nvarchar(500)
declare @spid int set @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')' exec (@sql)
open getspid fetch next from getspid into @spid while @@fetch_status<>-1 begin exec('kill '+@spid)
fetch next from getspid into @spid end close getspid deallocate getspid end GO
在还原之前先执行这个存储过程,需要传递dbname,就是你的数据库的名字。下边是类的原代码:(web.config里的数据库连接字符串是constr)
using System;
......
上次做了个项目,涉及到数据库的还原和恢复,到网上找了一下,是利用SQLDMO实现的,只要添加SQLDMO引用就好了,然后利用下边的类的方法就可以实现了。
我把原作者的类扩充了一下,可以自动识别web.config里 的数据库连接字符串,可以通过变量设置还原恢复的信息。
需要注意的时还原,还原的时候问题最大了,有别的用户使用数据库的时候无法还原,解决办法就是在MASTER数据库中添加一个存储过程:
create proc killspid (@dbname varchar(20))
as begin declare @sql nvarchar(500)
declare @spid int set @sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')' exec (@sql)
open getspid fetch next from getspid into @spid while @@fetch_status<>-1 begin exec('kill '+@spid)
fetch next from getspid into @spid end close getspid deallocate getspid end GO
在还原之前先执行这个存储过程,需要传递dbname,就是你的数据库的名字。下边是类的原代码:(web.config里的数据库连接字符串是constr)
using System;
......
asp.net(C#)实现SQL2000数据库备份和还原
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class databasemanager : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 数据库恢复和备份
/// </summary>
#region SQL数据库备份
/// <summary>
/// SQL数据库备份
/// </summary>
/// <param name="ServerIP">SQL服务器IP或(Localhost)</param>
......
asp.net(C#)实现SQL2000数据库备份和还原
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class databasemanager : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 数据库恢复和备份
/// </summary>
#region SQL数据库备份
/// <summary>
/// SQL数据库备份
/// </summary>
/// <param name="ServerIP">SQL服务器IP或(Localhost)</param>
......
asp.net(C#)实现SQL2000数据库备份和还原
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class databasemanager : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 数据库恢复和备份
/// </summary>
#region SQL数据库备份
/// <summary>
/// SQL数据库备份
/// </summary>
/// <param name="ServerIP">SQL服务器IP或(Localhost)</param>
......