⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbrowser.cpp

📁 用于数据流压缩的huffman算法源代码
💻 CPP
字号:
#define MAXCONNECT 10
#define MAXBUFFER 100000 
#define MAXCONNECTID 200
#define MAXUSER 1000
#include <string.h>        
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>    
//#include <malloc.h>
#include <ole2ver.h>							
#include <ole2.h>
#include <httpext.h>
#include <sqlext.h>
							
//#include <odbcinst.h>
#include "chcode.h"
#include "sqlprog.h"
#include "myole.h"
DWORD dwBytesWritten;
  
//------------------------------------------
short dog() {
	short i; 
	i=0;
   _asm {
         mov dx,037ah
          mov ax,00ffh
          out dx,ax
          dec dx
          dec dx
          mov ax,0010h
          out dx,ax
          inc dx
          in ax,dx 
          test al,010h
          jnz g150
          dec dx
          mov ax,0030h
          out dx,ax
          inc dx
          in ax,dx
          test al,010h
          jnz g150
          dec dx
          mov ax,0070h
          out dx,ax
          inc dx
          in ax,dx 
          test al,010h
          jz g150
          inc dx
          mov ax,0
          out dx,ax
          mov ax,1
          mov i,ax   
          jmp g160
   g150:  
          mov dx,027ah
          mov ax,00ffh
          out dx,ax
          dec dx
          dec dx
          mov ax,0010h
          out dx,ax
          inc dx
          in ax,dx 
          test al,010h
          jnz g155
          dec dx
          mov ax,0030h
          out dx,ax
          inc dx
          in ax,dx
          test al,010h
          jnz g155
          dec dx
          mov ax,0070h
          out dx,ax
          inc dx
          in ax,dx 
          test al,010h
          jz g155
          inc dx
          mov ax,0
          out dx,ax
          mov ax,1
          mov i,ax   
          jmp g160
   g155:  mov ax,0
          mov i,ax   
   g160:  mov ax,1
  	      }
  	   return i;};
//------------------------------
void WriteHtml(EXTENSION_CONTROL_BLOCK *pECB,LPSTR lpsz)
  {
	dwBytesWritten=lstrlen(lpsz);
	pECB->WriteClient(pECB->ConnID,(PVOID)lpsz,&dwBytesWritten,0);}
//------------------------------
BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD dwreason,LPVOID lpv)
{
  return(TRUE);}
//------------------------------
BOOL WINAPI GetExtensionVersion(HSE_VERSION_INFO *version)
{
  short i;
  RETCODE retcode;
  version->dwExtensionVersion=MAKELONG(HSE_VERSION_MINOR,
	HSE_VERSION_MAJOR);
  version->lpszExtensionDesc[0]='\0';
  retcode=SQLAllocEnv(&henv);
  if(retcode!=SQL_SUCCESS) return(FALSE);
  for(i=0;i<MAXCONNECT;i++) {
    connectStru[i].ID=0;
    connectStru[i].usermark=0;
    connectStru[i].hdbc=SQL_NULL_HDBC;}
  return(TRUE);}
//------------------------------
DWORD WINAPI HttpExtensionProc(EXTENSION_CONTROL_BLOCK *pECB)
{
}

abcd(unsigned char *requeststring)
  {
  short i,j,k,wwmark;
  int connectID,funMark;
  //unsigned char requeststring[20000];
  EXTENSION_CONTROL_BLOCK *pECB;
  unsigned char *ptr,*returnstring,*tmpstr;
  long dwBytesRead;
  UCHAR FAR userName[30],passWord[30],dwLib[30],dwName[30],
	tmpdw[30],dateString[16];
  BOOL errorUpdate;
  /*WriteHtml(pECB,
    "HTTP/1.0, 200 OK\r\nContent-type: text/html\r\n\r\n");
  if(stricmp(pECB->lpszMethod,"GET")==0)  
  	strcpy(requeststring,pECB->lpszQueryString);
  else {
    dwBytesRead=20000;
    pECB->ReadClient(pECB->ConnID,(PVOID)requeststring,&dwBytesRead);}
  k=10000;
  while(TRUE) {
	i=0;
    while(i<MAXCONNECT) {
      if(connectStru[i].usermark==0) {
	    k=i;break;}
      i++;}
    if(k==10000) Sleep(1000);	
	else returnstring=malloc(MAXBUFFER);
    if(returnstring==NULL) {
       WriteHtml(pECB,"ERROR002");return(HSE_STATUS_SUCCESS);}
	else break;}
	*/
  tmpstr=&requeststring[0];
  connectID=0;
  if(strlen(tmpstr)==0) {WriteHtml(pECB,"ERROR001");goto fail1;}
  ptr=strchr(tmpstr,'=');
  if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
  *ptr='\0';ptr++;funMark=0;
  if(stricmp(tmpstr,"sqlselect")==0) funMark=1;
  if(stricmp(tmpstr,"sqlupdate")==0) funMark=2;
  if(stricmp(tmpstr,"readwindow")==0) funMark=3;
  if(stricmp(tmpstr,"readall")==0) funMark=4;
  if(funMark==0) {WriteHtml(pECB,"ERROR001");goto fail1;}
  tmpstr=ptr;
  if((funMark==1)||(funMark==2)) {
    for(j=k;i<MAXCONNECT;i++) {
      if((connectStru[j].ID==connectID)&&
	  (connectStru[j].usermark==0)) {
      k=j;break;}}
    ptr=strchr(tmpstr,'\t');
	if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
    *ptr='\0';strcpy(userName,tmpstr);
	tmpstr=ptr+1;
    ptr=strchr(tmpstr,'\t');
    if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
    *ptr='\0';strcpy(passWord,tmpstr);
	tmpstr=ptr+1;ptr=strchr(tmpstr,'\t');
	if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
    *ptr='\0';connectID=atoi(tmpstr);
	tmpstr=ptr+1;ptr=strchr(tmpstr,'\t');
    if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
	*ptr='\0';strcpy(dwLib,tmpstr);
	tmpstr=ptr+1;ptr=strchr(tmpstr,'\t');
	if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
    *ptr='\0';strcpy(dwName,tmpstr);
	tmpstr=ptr+1;strcpy(connectStru[k].dwLib,dwLib);
    strcpy(connectStru[k].dwName,dwName);
    strcpy(connectStru[k].UID,userName);
    strcpy(connectStru[k].PASSWORD,passWord);}
  connectStru[k].returnstring=returnstring;
  connectStru[k].pECB=pECB;
  connectStru[k].usermark=1;
  switch(funMark) {
    case 1:
      if(connectID!=connectStru[k].ID) {
	    if(makeConnect(k,connectID)==FALSE) {
		  strcpy(tmpstr,connectStru[k].DSN);
		  strcat(tmpstr,connectStru[k].UID);
		  strcat(tmpstr,connectStru[k].PASSWORD);
		  WriteHtml(pECB,tmpstr);
		  WriteHtml(pECB,"ERROR003");goto end1;}
	    else {
		  sqlSelectFun(k,tmpstr);
		  break;}}
	  else {sqlSelectFun(k,tmpstr);break;}
    case 2:
	  ptr=strchr(tmpstr,'\t');
      if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto end1;}
	  *ptr='\0';
	  if(stricmp(tmpstr,"YES")==0) errorUpdate=TRUE;
	  else errorUpdate=FALSE;
      connectStru[k].errorUpdate=errorUpdate;
      tmpstr=ptr+1;
      if(connectID!=connectStru[k].ID) {
	    if(makeConnect(k,connectID)==FALSE) {
		  WriteHtml(pECB,"ERROR003");goto end1;}
	    else {
		  sqlUpdateFun(k,tmpstr);break;}}
	  else {
		sqlUpdateFun(k,tmpstr);break;}
    case 3:
      ptr=strchr(tmpstr,'\t');
      if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
      *ptr='\0';strcpy(userName,tmpstr);
	  tmpstr=ptr+1;
      ptr=strchr(tmpstr,'\t');
      if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
      *ptr='\0';strcpy(passWord,tmpstr);
	  tmpstr=ptr+1;ptr=strchr(tmpstr,'\t');
	  if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
      *ptr='\0';strcpy(dwName,tmpstr);
      tmpstr=ptr+1;ptr=strchr(tmpstr,'\t');
	  if(ptr==NULL) {WriteHtml(pECB,"ERROR001");goto fail1;}
	  *ptr='\0';strcpy(dateString,tmpstr);
	  if(UserPass(tmpdw,dwLib,userName,passWord)==FALSE) {
        WriteHtml(pECB,"ERROR005");goto fail1;}
	  if(strlen(dwName)==0) {wwmark=0;strcpy(dwName,tmpdw);}
	  else wwmark=1;
	  readWinInfo(dwLib,dwName,dateString,wwmark,k);
	  break;
    case 4:break;}
  end1:
	connectStru[k].usermark=0;
    free(connectStru[k].returnstring);
    return(HSE_STATUS_SUCCESS);
  fail1:
	free(returnstring);
	return(HSE_STATUS_SUCCESS);}
//------------------------------------------
main()
  {
     long i,ID;
	 long len;
	 size_t len1;
	 FILE *fp;
	 abcd("readwindow=dba\tsql\t19970809121314\t19970203121324\t");
     return(1);}
	 /*
	 i=MAX_CODE;
	 ID=TABLE_BANKS;
	 strcpy(connectStru[0].DSN,"foxtest");
	 strcpy(connectStru[0].dataDir,"C:\\DBROWSER\\");
	 Http(
		 "sqlselect=dba\tsql\t1\treport.pbl\ttest\t\tselect\t*\tfrom\tgpinfo");
	  return(1);
	 Http(
		 "sqlupdate=dba\tsql\t1\treport.pbl\ttest\tYES\tinsert\tinto\tgpinfo(ccode,gpname)\tvalues(1234,'abcd');insert\tinto\tgpinfo(ccode,gpname)\tvalues(123534,'a4bcd');");
	  return(1);
	 for(i=0;i<MAXCONNECT;i++) {
	   connectStru[i].ID=0;
	   connectStru[i].usermark=0;
	   connectStru[i].henv=SQL_NULL_HENV;
	   connectStru[i].hdbc=SQL_NULL_HDBC;
	 }
	 strcpy(connectStru[1].DSN,"fox");
     strcpy(connectStru[1].UID,"DBA");
     strcpy(connectStru[1].PASSWORD,"SQL");
	 strcpy(connectStru[1].dataDir,"C:\\DBROWSER\\");
	 connectStru[1].returnstring=malloc(1000000);
	 if(connectStru[1].returnstring!=NULL) {
	 ID=1;
	 len=lstrlen(connectStru[1].returnstring);
	// len=compress_code(connectStru[1].returnstring,len);
	// len=uncode_expand(connectStru[1].returnstring,len);
	 fp=fopen("c:\\dbrowser\\test.txt","w");
	 len1=fwrite(connectStru[1].returnstring,1l,len,fp);
	 fclose(fp);
	 free(connectStru[1].returnstring);
	 len=len;}
     return 1; }
*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -