资源简介
c++实现的sql解析器,一个经典的词法分析器,可解析各种复杂的SQL语句
代码片段和文件信息
//
// A collection class. based on CObArray() and adding some stack operations
//
#include “afxwin.h“
#include “EMBSQL.h“
#define XSIZE 128
//
// Allocate object from the shared memory segment
void *SCCollection::operator new(size_t size)
{
return shared_malloc(size);
}
//
// Deallocate the shared memory for this object
void SCCollection::operator delete(void *ptr)
{
shared_free((char *)ptr);
}
//
// Constructor sets up the object‘s shared memory pointers
SCCollection::SCCollection()
{
where = 0;
upper = XSIZE;
array = (void **)shared_malloc( XSIZE * sizeof(sizeof(Cobject*)));
}
//
// Destructor release the shared memory pointers
SCCollection::~SCCollection()
{
shared_free((char*)array);
}
//
// Push a string (merely adds) onto the tail of the collection
void SCCollection::Push(CString s) // push a string object onto the stack
{
Add((Cobject*)new CString(s));
}
//
// Push a collection as a LISTY (merely adds) onto the tail of the collection
void SCCollection::Push(SCCollection *s)
{
Push(“EOLIST“);
CopyIntoStack(s);
Push(“LIST“);
}
//
// Pop a string off (takes from the tail of the collection)
CString* SCCollection::Pop() // pop a single object off the stack
{
CString* ptr = NULL;
int where = this->GetSize() - 1;
if (where < 0) return NULL;
ptr = (CString*)this->GetAt(where);
RemoveAt(where);
return ptr;
}
//
// Make a copy clone of the collection
SCCollection* SCCollection::Copy()
{
SCCollection *nstk = NULL;
CString* ptr = NULL;
CString* nPtr = NULL;
nstk = new SCCollection();
for (int i=0;iGetSize();i++) {
ptr = (CString*)this->GetAt(i);
nPtr = new CString(*ptr);
nstk->Add((Cobject*)nPtr);
}
return nstk;
}
//
// Copy the collection specified into this collection as a
// series of push operations
void SCCollection::CopyIntoStack(SCCollection* s)
{
CString *str = NULL;
for (int i=0;iGetSize();i++) {
str = (CString*)s->GetAt(i);
Push(*str);
}
}
//
// Clear the collection and the pointers within the list
void SCCollection::Clear()
{
CString *ptr = NULL;
if (!this)
return;
while(this->GetSize() > 0) {
ptr = (CString*)this->GetAt(0);
delete ptr;
this->RemoveAt(0);
}
}
//
// Print the stack onto stdout
void SCCollection::Print()
{
CString *s = NULL;
for (int i=this->GetSize()-1;i>=0;i--) {
s = (CString*)this->GetAt(i);
printf(“\t%s\n“(LPCSTR)s->GetBuffer(128));
}
}
/////////////////////////////////////////////////////////
//
// Set the highwater pointer to 0 but don‘t free the memory
void SCCollection::RemoveAll()
{
where = 0;
}
//
// Return the pointer to the array
Cobject** SCCollection::Array()
{
return (Cobject**)array;
}
//
// Preinitialize the array
void SCCollection::Array(Cobject** n)
{
array = (void **)malloc( XSIZE * sizeof(Cobject*));
if (array == NULL) {
MessageBox(NULL“QuickView memory exhausted
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 4235 1999-11-14 16:05 SqlParser参考\Collection.cpp
文件 2937 1999-11-14 16:05 SqlParser参考\Column.cpp
文件 1213 1999-09-02 17:26 SqlParser参考\Column.h
目录 0 2004-09-02 16:44 SqlParser参考\Debug
文件 4085 1999-11-14 17:09 SqlParser参考\Embsql.dsp
文件 535 1999-11-14 17:06 SqlParser参考\Embsql.dsw
文件 16591 1999-11-12 13:12 SqlParser参考\Embsql.h
文件 125952 2004-09-02 16:48 SqlParser参考\Embsql.ncb
文件 53760 1999-11-14 17:09 SqlParser参考\Embsql.opt
文件 1404 1999-11-14 17:08 SqlParser参考\Embsql.plg
文件 912 2004-08-31 22:11 SqlParser参考\Embsql.sln
..A..H. 8192 2004-09-02 16:48 SqlParser参考\Embsql.suo
文件 3936 2004-08-31 22:11 SqlParser参考\EMBSQL.vcproj
文件 16793 1999-11-14 16:05 SqlParser参考\ExecuteStack.cpp
文件 10170 1999-11-14 16:55 SqlParser参考\Malloc.cpp
文件 23039 2004-08-31 22:11 SqlParser参考\Parser.cpp
文件 2368 1999-11-14 15:08 SqlParser参考\Readme.txt
文件 674 1999-11-14 16:06 SqlParser参考\SCString.cpp
文件 9024 1999-11-14 16:06 SqlParser参考\Table.cpp
目录 0 2004-08-31 22:11 SqlParser参考
----------- --------- ---------- ----- ----
286038 21
- 上一篇:C++Primer中文版第五版
- 下一篇:cminus语法分析器源代码完整版
相关资源
- C++ sql2008 WebServer通讯.docx
- VC操作SQLSERVER数据库
- c 操作sqlite数据库.cpp
- C开发mysql的api中文手册
- SQLyog中文破解版
- mfc+sql 酒店客房管理系统
- mysql+dev c++实现订单管理系统
- 完整版sqlite运行所需Vc++运行环境,纯
- 基于C++和数据库SQL server开发的商品销
- 航班信息查询系统设计
- VC++环境下如何连接SQL数据库
- 图书管理系统及数据库
- vc++&sql sever实现超市管理系统
- 图书管理系统mfc+sql
- vc+SQL实现医院收费管理系统
- vc++2010编译为静态库(.lib)的.vcxpro
- 基于C++和SQL Server开发的商品销售管理
- mysql-odbc5.1驱动包
- 宾馆管理系统(C++MFC)数据库课程设
- c++和SqlServer做的图书管理系统
- 运动会成绩管理系统 mfc+ sql2000
- 酒店管理系统数据库设计
- 火车订票系统mfc+sql希望能对大家有所
- 商品销售管理系统C++ + SQL2000开发
- 图书馆管理系统VC+sqlSEVER
- Linux+gladeGTK++C语言+mysql的模仿QQ聊天工
- 宾馆酒店管理系统 源代码vc加SQL编写
- 学生管理系统MFC Mysql
- 参考文献管理系统(PowerBuuilderMySQLM
- 员工工资管理系统C++与SQL课程设计
评论
共有 条评论