2013年05月03日

sp_password Null,’123,’sa’

把sa的密码设为“123”执行成功后有“Command(s) completed successfully.”

2013年04月15日

BCB 发布独立的无依赖编译程序
在prject-> Options-> Packages中去掉Builder with runtime packages选项
在prject-> Options-> Linker中去掉Use dynamic RTL 选项

在prject-> Options-> Compiler中点击Release,

2012年08月11日

//—————————————————————————
//   大五码转GBK码:
//   い地チ㎝瓣   –>   中華人民共和國
void   __fastcall   BIG52GBK(char   *szBuf)
{
        if(!strcmp(szBuf,   ” “))
                return;
        int   nStrLen   =   strlen(szBuf);
        wchar_t   *pws   =   new   wchar_t[nStrLen   +   1];
        try
        {
                int   nReturn   =   MultiByteToWideChar(950,   0,   szBuf,   nStrLen,   pws,   nStrLen   +   1);
                BOOL   bValue   =   false;
                nReturn   =   WideCharToMultiByte(936,   0,   pws,   nReturn,   szBuf,   nStrLen   +   1,   “? “,   &bValue);
                szBuf[nReturn]   =   0;
        }
        __finally
        {
                delete[]   pws;
        }
}
//—————————————————————————
//   GBK转大五码
//   中華人民共和國   –>   い地チ㎝瓣
void   __fastcall   GBK2BIG5(char   *szBuf)
{
        if(!strcmp(szBuf,   ” “))
                return   ;
        int   nStrLen   =   strlen(szBuf);
        wchar_t   *pws   =   new   wchar_t[nStrLen   +   1];
        try
        {
                MultiByteToWideChar(936,   0,   szBuf,   nStrLen,   pws,   nStrLen   +   1);
                BOOL   bValue   =   false;
                WideCharToMultiByte(950,   0,   pws,   nStrLen,   szBuf,   nStrLen   +   1,   “? “,   &bValue);
                szBuf[nStrLen]   =   0;
        }
        __finally
        {
                delete[]   pws;
        }
}
//—————————————————————————-
//   抱歉,这个提示又来了,为了防止不负责任的转载者,只好在此留些信息。
//   作者:ccrun(老妖)   info@ccrun.com
//   本文转自   C++Builder   研究   –   http://www.ccrun.com/article/go.asp?i=634&d=04g63p
//—————————————————————————
//   GB2312码转GBK码
//   中华人民共和国   –>   中華人民共和國
void   __fastcall   GB2GBK(char   *szBuf)
{
        if(!strcmp(szBuf,   ” “))
                return;
        int   nStrLen   =   strlen(szBuf);
        WORD   wLCID   =   MAKELCID(MAKELANGID
                        (LANG_CHINESE,   SUBLANG_CHINESE_SIMPLIFIED),   SORT_CHINESE_PRC);
        int   nReturn   =   LCMapString(wLCID,   LCMAP_TRADITIONAL_CHINESE,   szBuf,   nStrLen,   NULL,   0);
        if(!nReturn)
                return;
        char   *pcBuf   =   new   char[nReturn   +   1];
        try
        {
                wLCID   =   MAKELCID(MAKELANGID
                                (LANG_CHINESE,   SUBLANG_CHINESE_SIMPLIFIED),   SORT_CHINESE_PRC);
                LCMapString(wLCID,   LCMAP_TRADITIONAL_CHINESE,   szBuf,   nReturn,   pcBuf,   nReturn   +   1);
                strncpy(szBuf,   pcBuf,   nReturn);
        }
        __finally
        {
                delete[]   pcBuf;
        }
}
//—————————————————————————
//   GBK码转GB2312码
//   中華人民共和國   –>   中华人民共和国
void   __fastcall   GBK2GB(char   *szBuf)
{
        if(!strcmp(szBuf,   ” “))
                return;
        int   nStrLen   =   strlen(szBuf);
        WORD   wLCID   =   MAKELCID(MAKELANGID
                        (LANG_CHINESE,   SUBLANG_CHINESE_SIMPLIFIED),   SORT_CHINESE_BIG5);
        int   nReturn   =   LCMapString(wLCID,   LCMAP_SIMPLIFIED_CHINESE,   szBuf,   nStrLen,   NULL,   0);
        if(!nReturn)
                return;
        char   *pcBuf   =   new   char[nReturn   +   1];
        try
        {
                wLCID   =   MAKELCID(MAKELANGID
                                (LANG_CHINESE,   SUBLANG_CHINESE_SIMPLIFIED),   SORT_CHINESE_BIG5);
                LCMapString(wLCID,   LCMAP_SIMPLIFIED_CHINESE,   szBuf,   nReturn,   pcBuf,   nReturn   +   1);
                strncpy(szBuf,   pcBuf,   nReturn);
        }
        __finally
        {
                delete   []pcBuf;
        }
}
//—————————————————————————
//   测试代码
void   __fastcall   TForm1::Button1Click(TObject   *Sender)
{
        char   szBuf[255];
        //   从GB2312转到GBK
        strcpy(szBuf,   Edit1-> Text.c_str());
        GB2GBK(szBuf);
        Edit2-> Text   =   String(szBuf);
        //   从GB2312转到BIG5,通过GBK中转
        strcpy(szBuf,   Edit1-> Text.c_str());
        GB2GBK(szBuf);
        GBK2BIG5(szBuf);
        Edit3-> Text   =   String(szBuf);
}

注意,请不要使用String类的c_str()作为上述几个函数的传入参数。

2012年07月05日

在#include <vcl.h>下面加上#include <DateUtils.hpp>  

依此类推,并打开DateUtils.hpp文件,我们不难得出下列语句的含义:
IncYear(Now(),-1);//一年前的现在时间 
IncMonth(Now(),2); //俩月后的现在时间
IncDay(Now(),3); //三天后的现在时间
IncHour(Now(),4); 
IncMinute(Now(),5); 
IncSecond(Now(),6); 
IncMilliSecond(Now(),-7); 
IncWeek(Now(),8); 
DaysBetween(Now(),Now()-2); //现在和两天前中间的时间
2012年03月13日

select * from
(select 

cast(rtrim(Year_Str)+’/'+rtrim(Month_Str)+’/'+rtrim(Day_Str) as Datetime)  as  DateStr

– Convert Chart To Datetime  :: cast (… as DateTime)

, *
from Table1 ) t1
where t1.DateStr  between ‘2012/1/1′ and ‘2012/3/10′

2011年01月06日

Delphi_将被其他窗体遮住的窗体弹到最前面 
 
 
unit SysFocus;
interface

uses

Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs;

type

TSysFocus=class(TComponent)

public

function GetSysFocus:integer;

function SetSysFocus(hwnd:integer):integer;

end;
implementation
function TSysFoucs.GetSysFocus;//取当前活动窗口

var

hOtherWin,OtherThreadID,hFocusWin:integer;

begin

hOtherWin:=GetForegroundWindow;

OtherThreadID:=GetWindowThreadProcessID(hOtherWin,nil);

if AttachThreadInput(GetcurrentThreadID,OtherThreadID,True) then

begin

hFocusWin:=GetFocus;

result:=GetFocus;

if HFocusWin<>0 then

try

//SendMessage(GetFocus,WM_COPY,0,0);//书上是这么写的

finally

AttachThreadInput(GetcurrentThreadID,OtherThreadID,False);

end;

end

else result:=GetFocus;

end;
function TSysFocus.SetSysFocus(hwnd:integer):integer;//设置某窗口为活动窗口

var

hOtherWin,OtherTHreadID,hFocusWin:integer;

begin

hOtherWin:=GetForegroundWindow;

OtherThreadID:=GetWindowThreadProcessID(hOtherWin,nil);

if AttachThreadInput(GetcurrentThreadID,OtherThreadID,True) then

begin

hFocusWin:=GetFocus;

SetFocus(hwnd);

//SendMessage(hwnd,WM_COPY,0,0);

if hFocusWin<>0 then

try

//SendMessage(GetFocus,WM_COPY,0,0);

finally

AttachThreadInput(GetCurrentTHreadID,OtherTHreadID,False);

end;

end

else result:=SetFocus(hwnd);

end;
end.

2010年05月17日

select right(‘00000000′ + cast(1 as varchar(8)),8)

显示效果

1—>  00000001

2008年01月04日

LQ-670K爱普生针式打印机打印增值税发票字体变大

 

一、现象描述:

爱普生针式打印机打印增值税发票时,会出现字体变大的现象,参见图(1)、图(2)。

图(1)打印增值税发票字体偏大

图(2)打印增值税发票字体正常

二、原因分析:
       
计算机在处理数据时有两种数据格式分别为R AWEMF。由于两种数据格式的处理方式不同,就会造成软件和系统之间的兼容性问题。
RAW*
:原始图像数据存储格式。电脑发送的作业直接由打印机的驱动程序编译处理,处理后将数据发送给spooler管理器,进行打印。
EMF*
:电脑发送的作业通过系统GDI函数处理,处理过后在将数据发送给打印机的驱动程序进行编译和处理,最终将数据发送给spooler管理器,进行打印。

三、解决方法:   
1. Windows 2000/XP
操作系统
1.1
选择开始”—“设置打印机(打印机与传真)-鼠标右键点击所使用的针式打印机,然后选择属性
1.2 
选择高级打印处理器”—默认的数据类型选择为“RAW”,点击确定即可,如
图(3

图(3)选择默认数据类型

2. Windows98操作系统
2.1
选择开始”—“设置打印机-鼠标右键点击所使用的针式打印机,然后选择属性
2.2
选择详细资料后台打印设置-在数据格式中选择“RAW”,点击确定即可。

Variant WorkExcel, WorkBook, WorkSheet, CellsRange; WorkExcel = Variant::CreateObject("Excel.Application");//Start Excel WorkExcel.OlePropertySet("Visible",true);//Open Excel WorkBook = WorkExcel.OlePropertyGet("Workbooks"); WorkBook.Exec(Procedure("Add"));//Add a new workbook WorkBook = WorkExcel.OlePropertyGet("ActiveWorkbook"); WorkSheet = WorkBook.OlePropertyGet("ActiveSheet"); WorkSheet.OlePropertyGet("Cells").OlePropertyGet("Item",1,1).OlePropertySet("Value","Title"); WorkSheet.OlePropertyGet("Cells").OlePropertyGet("Item",2,1).OlePropertySet("Value","row(y)=2,column(x)=1"); CellsRange = WorkSheet.OlePropertyGet("Range","A1:C1"); CellsRange.OlePropertyGet("Cells").OleFunction("Select"); CellsRange.OlePropertyGet("Cells").OleFunction("Merge"); WorkSheet.OlePropertyGet("Range","A2").OlePropertyGet("Cells").OleFunction("Select"); //WorkSheet.OlePropertyGet("Range","A2").OlePropertyGet("Cells").OlePropertySet("HorizontalAlignment","xlCenter"); WorkSheet.OlePropertyGet("Cells").OlePropertyGet("Item",5,5).OlePropertySet("Value","123456.123"); WorkSheet.OlePropertyGet("Range","E:E").OlePropertyGet("Cells").OleFunction("Select"); WorkSheet.OlePropertyGet("Range","E:E").OlePropertyGet("Cells").OlePropertySet("Style","Comma"); WorkSheet.OlePropertyGet("Range","A2").OlePropertyGet("Cells").OleFunction("Select"); WorkSheet.OlePropertyGet("Range","A2").OlePropertyGet("Cells").OleFunction("Activate"); AnsiString abc = WorkSheet.OlePropertyGet("Cells",5,5).OlePropertyGet("Value"); ShowMessage(abc); return; Query1->Active = False; Query1->SQL->Clear(); Query1->SQL->Add("select * from T_Department"); Query1->Active = True; int i, row = 3, column = 1; AnsiString T_Value; for (i = 0; i < Query1->FieldCount; i++) { WorkSheet.OlePropertyGet("Cells").OlePropertyGet("Item",row,column + i).Exec(PropertySet("Value") << Query1->Fields->Fields[i]->FieldName.c_str()); } Query1->First(); while (!Query1->Eof) { ++row; for (i = 0; i < Query1->FieldCount; i++) //WorkSheet.OlePropertyGet("Cells").OlePropertyGet("Item",row,column + i).Exec(PropertySet("Value") << Query1->Fields->Fields[i]->AsString.c_str()); WorkSheet.OlePropertyGet("Cells",row,column + i).OlePropertySet("Value",Query1->Fields->Fields[i]->AsString.c_str()); Query1->Next(); } Query1->Active = False; CellsRange = WorkSheet.OlePropertyGet("Range","A1:IV65536"); CellsRange.OlePropertyGet("Cells").OleFunction("Select"); CellsRange.OlePropertyGet("Cells").OlePropertyGet("Font").OlePropertySet("size",10); CellsRange.OlePropertyGet("Columns").OleFunction("AutoFit");

自动保存窗体状态的控件
——————————————————————————–
作者:未知  来源于:Delphi共和国  发布时间:2006-1-15 22:44:53
一些比较专业的软件都有自动保存窗口运行状态的功能,具体的方法都是在窗口关闭前将其状态保存到注册表中或ini文件中,而这些代码一般都是相同的,所以可以将其集中在一起,重复使用。本文将相应的代码用一个控件TPosition来实现,使用时只要将此控件放到相应的Form上即可,不需要增加任何代码,从而实现了“零”代码保存窗口运行状态。

  下面是这个控件的主要实现文件Position.pas的内容,包括相应的注释。为了保持注册表的整洁,这里把信息保存到ini文件中。

  unit Position;

  interface

  uses

  Forms, Classes, SysUtils, Windows, IniFiles;

  type

  //TPosition是不可视控件,由TComponent继承

  TPosition = class(TComponent)

  private

  //用此变量保存父窗口的OnDestroy事件

  FOnDestroy: TNotifyEvent;

  //用此函数替换父窗口的OnDestroy事件

  procedure FormDestroy(Sender: TObject);

  protected

  //在控件加载时恢复父窗口状态

  procedure Loaded; override;

  end;

  //恢复窗口位置函数

  procedure ReadFormPos(Form:TForm);

  //保存窗口位置函数

  procedure SaveFormPos(Form:TForm);

  //控件注册函数

  procedure Register;

  implementation

  //连接此控件的图标

  {$R Position.Dcr}

  //恢复窗口位置函数,窗口状态存放在ini文件中。

  procedure ReadFormPos(Form : TForm);

  var

  RegFile : TIniFile;

  SectName : string;

  begin

  //ini文件中存放Form信息的节名称

  SectName := Form.Name + ‘ Position’;

  //打开与可执行文件名相同的ini文件

  RegFile := TIniFile.Create(

  ChangeFileExt(Application.ExeName,’.ini’));

  //恢复窗口状态

  with Form do begin

  Left := RegFile.ReadInteger(SectName,’Left’,Left);

  Top := RegFile.ReadInteger(SectName,’Top’,Top);

  Width := RegFile.ReadInteger(SectName,’Width’,Width);

  Height := RegFile.ReadInteger(SectName,’Height’,Height);

  WindowState := TWindowState(

  RegFile.ReadInteger(SectName,’WindowState’,0));

  end;

  //关闭ini文件

  RegFile.Free;

  end;

  //保存窗口位置函数

  procedure SaveFormPos(Form:TForm);

  var

  RegFile : TIniFile;

  SectName : string;

  begin

  SectName := Form.Name + ‘ Position’;

  RegFile := TIniFile.Create(

  ChangeFileExt(Application.ExeName,’.ini’));

  with Form do begin

  RegFile.WriteInteger(SectName,’WindowState’,

  integer(WindowState));

  //最大化时,不保存窗口位置

  if WindowState <> wsMaximized then begin

  RegFile.WriteInteger(SectName,’Left’,Left);

  RegFile.WriteInteger(SectName,’Top’,Top);

  RegFile.WriteInteger(SectName,’Width’,Width);

  RegFile.WriteInteger(SectName,’Height’,Height);

  end;

  //当要保存状态的窗口是程序主窗口时,要特殊处理。因为主窗口收到最小化消息时,只是把此消息转至Application处理,本身并不最小化。所以我们要判断Application的状态。

  if Form = Application.MainForm then begin

  if IsIconic(Application.Handle) then begin

  Reg File.Write Integer(Sect Name,’WindowState’,

  Integer(wsMinimized));

  end;

  end;

  end;

  RegFile.Free;

  end;

  //注册控件

  procedure Register;

  begin

  RegisterComponents(‘XDCtls’, [TPosition]);

  end;

  //TPositon类的实现

  //当主窗口Destroy时,调用此函数,此函数又调用保存的OnDestoy事件处理函数

  procedure TPosition.FormDestroy(Sender: TObject);

  begin

  SaveFormPos(Owner as TForm);

  if Assigned(FOnDestroy) then FOnDestroy(Sender);

  end;

  //控件加载时,恢复父窗口位置,并对父窗口的OnDestroy事件进行替换

  procedure TPosition.Loaded;

  begin

  inherited Loaded;

  //非设计状态才进行处理

  if not (csDesigning in Componentstate) then begin

  ReadFormPos(Owner as TForm);

  FOnDestroy := (Owner as TForm).OnDestroy;

  (Owner as TForm).OnDestroy := FormDestroy;

  end;

  end;

  end.

  完成此单元后,新建一个Package,将此单元包含在其中,编译、安装即可。资源文件Position.dcr,可自行创建合适的图标。使用时,只要将这个控件放到相应的Form即可。下面是我测试时的窗体代码,不用加任何语句就可以自动保存窗体状态。

  unit Unit1;

  interface

  uses

  Windows, Messages, SysUtils, Classes, Graphics,

  Controls, Forms, Dialogs,Position;

  type

  TForm1 = class(TForm)

  Position1: TPosition;

  private

  public

  end;

  var

  Form1: TForm1;

  implementation

  {$R *.DFM}

  end.

  此程序在PWIN97+Delphi5.0下通过