具体操作如下: 在终端服务器上做如下修改 KEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServerWds
dpwdTds cp 和 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminalServerWinStationsRDP-Tcp 下都有一个PortNumber值,通常为3389,将其修改为自己的值,如9876(可自己指定端口,但最好不要设为低端端口,以免冲突); 2.重新启动服务器。 在客户端做如下改动 1.打开客户端连接管理器; 2.输入主机地址,后面跟端口号,例如:202.100.4.15:9876
Visual Studio.NET 2003 简体中文版
sc_vs.net_2003_prereq ·网通FTP下载1 ·网通FTP下载2 ·网通FTP下载3 · |
sc_vs.net_2003_enar_cd1 ·网通FTP下载1 ·网通FTP下载2 ·网通FTP下载3 · |
sc_vs.net_2003_enar_cd2 ·网通FTP下载1 ·网通FTP下载2 ·网通FTP下载3 · |
sc_vs.net_2003_library_cd1 ·网通FTP下载1 ·网通FTP下载2 ·网通FTP下载3 · |
sc_vs.net_2003_library_cd2 ·网通FTP下载1 ·网通FTP下载2 ·网通FTP下载3 · |
sc_vs.net_2003_library_cd3 ·网通FTP下载1 ·网通FTP下载2 ·网通FTP下载3 · |
关于Sqlserver数据库日志满的快速解决办法
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器–右键你要压缩的数据库–所有任务–收缩数据库–收缩文件
–选择日志文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
–选择数据文件–在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
–收缩数据库
DBCC SHRINKDATABASE(客户资料)
–收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器–服务器–数据库–右键–分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器–服务器–数据库–右键–附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
E X E C sp_detach_db @dbname = ‘pubs’
b.删除日志文件
c.再附加
E X E C sp_attach_single_file_db @dbname = ‘pubs’,
@physname = ‘c:Program FilesMicrosoft SQL ServerMSSQLDatapubs.mdf’
5.为了以后能自动收缩,做如下设置:
企业管理器–服务器–右键数据库–属性–选项–选择”自动收缩”
–SQL语句设置方式:
E X E C sp_dboption ‘数据库名’, ‘autoshrink’, ‘TRUE’
6.如果想以后不让它日志增长得太大
企业管理器–服务器–右键数据库–属性–事务日志
–将文件增长限制为xM(x是你允许的最大数据文件大小)
–SQL语句的设置方式:
alter database 数据库名 modify file(name=逻辑文件名,maxsize=20)
特别注意:
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
另外提供一种更简单的方法,本人屡试不爽,建议大家使用。
更简单的方法:
1。右建数据库属性窗口–故障还原模型–设为简单
2。右建数据库所有任务–收缩数据库
3。右建数据库属性窗口–故障还原模型–设为大容量日志记录
最近在写网页抓取程序时候,很多时候需要对字符进行URL编码,其实URL编码就是将每个字节用16进制的文本表示,前边在家上%,了解了这一点,那么写个函数就很简单了,于是就随手写了个两个简单的函数对字符进行URL编码解码。
把代码贴出来,也许对大家有用阿.. :)
function URLencode(str:string):string;
var
i:integer;
temp:string;
begin
for i:= 1 to length(str) do
begin
temp:=temp+’%'+inttohex(integer(str[i]),0);
end;
result:=temp;
end;
function URLdecode(str:string):string;
var
temp:string;
i:integer;
begin
setlength(temp,length(str) div 3);
i:=1;
while(i<length(str)) do
begin
temp[(i+2)div 3]:=char(strtoint(‘$’+str[i+1]+str[i+2]));
inc(i,3);
end;
Result:=temp;
end;
在写一个小程序时,要在托盘图标上查找 窗体标题和句柄,这当然需要枚举托盘图标了,上网搜索这方面的代码,基本上都是vb的,c++的都很少,而且千篇一律,而且都有问题,只好参考着这些有问题的vb和c++代码,一点点翻译成DELPHI的,然后再一点点调试修改,现在搞定了,分享给大家阿 :)
uses Commctrl
procedure enumTrayNotifyWnd;
var
wd:HWND;
wtd:HWND;
wd1:HWND;
pid:DWORD;
hd:THandle;
num,i:integer;
n:ULONG;
p:TTBBUTTON;
pp:^TTBBUTTON;
x:string;
name :array[0..255] of WCHAR;
whd,proid :ulong;
temp :string;
sp:^TTBBUTTON;
_sp:TTBButton;
begin
wd:=FindWindow(‘Shell_TrayWnd’,nil);
if (wd=0) then
begin
showmessage(‘Error1′);
exit;
end;
wtd:=FindWindowEx(wd,0,’TrayNotifyWnd’,nil);
if (wtd=0) then
begin
showmessage(‘Error2′);
exit;
end;
wtd:=FindWindowEx(wtd,0,’SysPager’,nil);
if (wtd=0) then
begin
showmessage(‘SysPager’);
exit;
end;
wd1:=FindWindowEx(wtd,0,’ToolbarWindow32′,nil);
if (wd1=0) then
begin
showmessage(‘Error3′);
exit;
end;
pid:=0;
GetWindowThreadProcessId(wd1,@pid);
if (pid=0) then
begin
showmessage(‘Error4′);
exit;
end;
hd:=OpenProcess(PROCESS_ALL_ACCESS ,true,pid);
if (hd=0) then
begin
showmessage(‘Error6′#13+ IntToStr(hd));
exit;
end;
num:=SendMessage(wd1,TB_BUTTONCOUNT,0,0);
sp:=@_sp;
for i:= 0 to num do
begin
SendMessage(wd1,TB_GETBUTTON,i,integer(sp));
pp:=@p;
ReadProcessMemory(hd,sp,pp,sizeof(p),n);
//x:=Format(‘%x %x %x %x %x %x ’,[p.iBitmap,p.idCommand,p.fsState,p.fsStyle,p.dwData,p.iString]);
name[0]:=char(0);
if (Cardinal(p.iString) <>$ffffffff) then
begin
try
ReadProcessMemory(hd,pointer(p.iString),@name,255,n);
name[n]:=char(0);
except
showmessage(‘except1′)
end;
temp:=name;
try
whd:=0;
ReadProcessMemory(hd,pointer(p.dwData),@whd,4,n);
except
end;
proid:=0;
GetWindowThreadProcessId(whd,@proid);
x:=x+#13+Format(‘位置=%d 名称=%s 窗口句柄=%x 进程ID=%x’,[i,temp,whd,proid]);
end;
end;
ShowMessage(x);
end;

sc_vs.net_2003_prereq