1.程序不定时出现 Access violation at address 77D1461D in module 'user32.dll'.Read of address o56943134
2.怎么判断打印机的状态(如是否联机)
3.怎么判断远端计算机是否运行和远端SQL Server 是否运行
4.怎么通过Delphi 进行Sql Server 备份(备份出来的数据能符加到数据库上)不好意思一下问了这么多问题.快帮帮我了
2.怎么判断打印机的状态(如是否联机)
3.怎么判断远端计算机是否运行和远端SQL Server 是否运行
4.怎么通过Delphi 进行Sql Server 备份(备份出来的数据能符加到数据库上)不好意思一下问了这么多问题.快帮帮我了
解决方案 »
- 动态创建XmlDocument后读取根节点报内存错?
- xml+datagrid,这个小问题没人肯帮吗??
- 在WORD中插入表格的时候,怎样在表格里插入表格?
- c/s模式的通信问题
- 为什么我的DELPHI6.0里的在new 中的webservices栏中,没有Invokable Wozard 导向?
- MIDAS中,如果把应用服务器程序关闭(客户程序不关闭),即使再打开应用服务器,客户程序也会出错
- 菜鸟的日期差值问题---在线等(帮个忙了)
- 有偿寻求fastreport text文字宽度设定的解决方法
- 在NT4中报错:“Cann't save”为什么?是不是跟ADO的SAVETOFILE有关?
- delphi 调用MTS服务器中用vb6编写的dll的问题
- 动态数组能作为函数的放回值吗?
- 怪问题,在网上没有找到答案,请高手相助!100分!!!
4.写SQL 语句实现
备份:backup database [databasename] to [备份路径]
恢复:restore database [databasename] from [备份文件的路径]
2.检测打印机状态要连接一下,然后在Except中写没有连接或者已经连接的代码
3.要连接一下数据库,然后在Except中写没有连接或者已经连接的代码
4.可以自己写程序也可以用sqlserver 的bpc工具,你可以查下sqlserver的帮助
---------出自超级锰料2003版
procedure QuickCopyTable(T: TTable; DestTblName: string; Overwrite: Boolean);varDBType: DBINAME;WasOpen: Boolean;NumCopied: Word;begin//save table active stateWasOpen := T.Active;if not WasOpen then T.Open; //ensure the table is open//Get driver type stringCheck(DbiGetProp(hDBIObj(T.Handle), drvDRIVERTYPE, @DBType, SizeOf(DBINAME), NumCopied));//Copy the tableCheck(DBICopyTable(T.DBHandle, Overwrite, PChar(T.Tablename),DBType, PChar(DestTblName)));//Restore active stateT.Active := WasOpen;end;
---------出自超级锰料2003版
DataSource3.DataSet.Open;
DataSource3.DataSet.Edit;
DataSource3.DataSet.FieldByName('from1').Value:=dbedit1.Text;
DataSource3.DataSet.FieldByName('from2').Value:=dbedit2.Text;
DataSource3.DataSet.FieldByName('to1').Value:=dbedit3.Text;
DataSource3.DataSet.FieldByName('to2').Value:=dbedit4.Text;
DataSource3.DataSet.FieldByName('date1').Value:=datetostr(dtp1.Date);
DataSource3.DataSet.FieldByName('tel1').Value:=dbedit5.Text;
DataSource3.DataSet.FieldByName('tel2').Value:=dbedit6.Text;
DataSource3.DataSet.FieldByName('name').Value:=edit1.Text;
DataSource3.DataSet.FieldByName('address').Value:=edit2.Text;
DataSource3.DataSet.Post;
DataSource3.DataSet.Close;
DataSource3.DataSet.Open;
DM_Orgnize.RP_ksend_Group.ProjectFile:=ExtractFilePath(application.ExeName)+'..\Orgnize\report\Line_j.rav';
DM_Orgnize.Rp_ksend_Group.Open;
DM_Orgnize.Rp_ksend_Group.Execute;代码是这样的.打印窗休出现后就出错Access violation at address 77D1461D in module 'user32.dll'.Read of address o56943134
我猜测到你执行到DM_Orgnize.Rp_ksend_Group.Open;一句中出错
印,返回值为0则表示不支持。
DeviceCapabilitiesA(Device,Port,DC_DVPLEX,nil,nil);
下面的代码可以获得一个打印机最多能复制的份数:
DeviceCapabilitiesA(Device,Port,DC_COPIES,nil,nil);
使用GetDeviceCaps()函数确定所选设备的特定属性。在某些情况下,GetDeviceCaps()将返回所需
要的值。下面的代码以毫米为单位返回打印机设备的宽度:
GetDeviceCaps(Printer.Handle,HORISIZE);
在另一些情况下,GetDeviceCaps()返回一个整数,这个整数经过位屏蔽可以获得打印机的某一性
能。例如,GetDeviceCaps()方法返回这样的整型值:
RCaps:=GetDeviceCaps(Printer.Handle,RASTERCAPS);
然后,通过AND运算符屏蔽出RC_BANDING字段,进而确定打印机是否支持分段打印技术。
(RCapsandRC_BANDING)=RC_BANDING
***************
获取打印机状态信息
var
pinfo: pPRINTERINFO2;
pprt,a: Cardinal;
b:PDWORD;
begin
b:=allocmem(256);
pinfo:=AllocMem(1000);
if OpenPrinter('HP DJ 200',pprt,nil) then
begin
a:=1000;
if getprinter(pprt,2,pinfo,a,b) then
showmessage(pinfo.pPrinterName+' ststus:'+inttostr(pinfo.Status));
ClosePrinter(pprt);
end; freemem(b);
freemem(pinfo);
end; PRINTER_INFO_2.Status :
Windows NT:
PRINTER_STATUS_PAUSED
PRINTER_STATUS_PENDING_DELETION
Windows 95:
PRINTER_STATUS_BUSY
PRINTER_STATUS_DOOR_OPEN
PRINTER_STATUS_ERROR
PRINTER_STATUS_INITIALIZING
PRINTER_STATUS_IO_ACTIVE
PRINTER_STATUS_MANUAL_FEED
PRINTER_STATUS_NO_TONER
PRINTER_STATUS_NOT_AVAILABLE
PRINTER_STATUS_OFFLINE
PRINTER_STATUS_OUT_OF_MEMORY
PRINTER_STATUS_OUTPUT_BIN_FULL
PRINTER_STATUS_PAGE_PUNT
PRINTER_STATUS_PAPER_JAM
PRINTER_STATUS_PAPER_OUT
PRINTER_STATUS_PAPER_PROBLEM
PRINTER_STATUS_PAUSED
PRINTER_STATUS_PENDING_DELETION
PRINTER_STATUS_PRINTING
PRINTER_STATUS_PROCESSING
PRINTER_STATUS_TONER_LOW
PRINTER_STATUS_UNAVAILABLE
PRINTER_STATUS_USER_INTERVENTION
PRINTER_STATUS_WAITING
PRINTER_STATUS_WARMING_UP