压缩数据库sdf文件

linweishang 2007-01-25 02:57:37
using System.Data.SqlServerCe
我在EVC下使用using System.Data.SqlServerCe和SqlCeEngine,
编译提示:undeclared identifier!
请问该如何解决?
在EVC下是如何:压缩数据库sdf文件的!
感激不尽,零表涕蔹!
...全文
779 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaoxiuhua 2008-12-15
  • 打赏
  • 举报
回复
为什么执行完这个方法,数据库一点也没效果没有
shmily1280 2007-03-08
  • 打赏
  • 举报
回复
对了,上面4个是放在StdAfx.h文件中的
下面那个是放在压缩方法的类.H文件中的
shmily1280 2007-03-08
  • 打赏
  • 举报
回复

#include <oledb.h>
#include <oledberr.h>

#include <coguid.h>

// SSCE Files:
//
#include <ssceoledb.h>

所需要要的头文件~~

#include <COMDEF.H> 这个东西忘记了需不需要
linweishang 2007-01-29
  • 打赏
  • 举报
回复
除了oledb.lib之外其它的Coredll.lib,ole32.lib,oleaut32.lib,Uuid.lib,都能够在D:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Lib\emulator下找到!oledbtype类型未能找到。
我开发环境是EVC4.0,SDK是PPC2003。
想不好了!
linweishang 2007-01-29
  • 打赏
  • 举报
回复
#include "D:\Program Files\Microsoft SQL Server CE 2.0\Inc\SSCEOLEDB.H"
#include <oledb.h>
#include "d:\JetVC\jetoledb.h"
#include "d:\JetVC\msjetoledb.h"
至于把这些头文件放置在#include "stdafx.h"之外,是由于有人说此不是基于MFC类的,所以应该放置在#include "stdafx.h"外面。
对于不加上面的头文件也是7个错误。
而#include "atldbcli.h"里面已经加了“oledb.h”,应该不用加也可以了。郁闷了,明明olddb.h已经定义了TYPEDEF WORD DBSOURCETYPE;为什么说identifier 'DBSOURCETYPE'呢????
linweishang 2007-01-29
  • 打赏
  • 举报
回复
#include "D:\Program Files\Microsoft SQL Server CE 2.0\Inc\SSCEOLEDB.H"
#include <oledb.h>
#include "d:\JetVC\jetoledb.h"
#include "d:\JetVC\msjetoledb.h"
#include "stdafx.h"

#include "MySQLCETest.h"
#include "MySQLCETestDlg.h"
#include "atldbcli.h"
出错信息如下:
D:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Include\emulator\msdasc.h(242) : error C2061: syntax error : identifier 'DBSOURCETYPE'
D:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\Include\emulator\msdasc.h(334) : error C2061: syntax error : identifier 'DBSOURCETYPE'
///DBSOURCETYPE在"oledb.h"已经定义了!,为什么呢说没有定义呢!!??
D:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\atl\include\atldbcli.h(48) : error C2146: syntax error : missing ';' before identifier '_GetOleDBType'
D:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\atl\include\atldbcli.h(48) : error C2433: 'DBTYPE' : 'inline' not permitted on data declarations
D:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\atl\include\atldbcli.h(48) : error C2501: 'DBTYPE' : missing storage-class or type specifiers
D:\Program Files\Windows CE Tools\wce420\POCKET PC 2003\atl\include\atldbcli.h(48) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
///'_GetOleDBType'这么没有找到啊??
老哥我都加了还是不行啊,你啥时候回来啊?救我啊!
shmily1280 2007-01-26
  • 打赏
  • 举报
回复
HRESULT CDlgDataBaseRepair::CompactDataBase()
{
CoInitializeEx(NULL, COINIT_MULTITHREADED);
HRESULT hr = NOERROR; // Error code reporting
DBPROPSET dbpropset[1]; // Property Set used to initialize provider
DBPROP dbprop[1]; // property array used in property set to initialize provider

// Provider Interfaces
IDBProperties * pIDBProperties = NULL;
IDBCreateSession * pIDBCreateSession = NULL;
ISSCECompact *pISSCECompact = NULL;
IDBSchemaRowset * pIDBSchemaRowset = NULL;

VariantInit(&dbprop[0].vValue);

// Create an instance of the OLE DB Provider for SSCE 1.0
hr = CoCreateInstance(CLSID_SQLSERVERCE_2_0, 0, CLSCTX_INPROC_SERVER, IID_IDBProperties, (void**) &pIDBProperties);
if(FAILED(hr))
{
//wcerr << L"Failed to instantiate OLE DB Provider for SSCE10" << endl;
goto Exit;
}

// Initialize Property with name of database
dbprop[0].dwPropertyID = DBPROP_INIT_DATASOURCE;
dbprop[0].dwOptions = DBPROPOPTIONS_REQUIRED;
dbprop[0].vValue.vt = VT_BSTR;
dbprop[0].vValue.bstrVal = SysAllocString(L"\\硬盘\\1.sdf");
if(NULL == dbprop[0].vValue.bstrVal)
{
hr = E_OUTOFMEMORY;
goto Exit;
}

// Initialize property set
dbpropset[0].guidPropertySet = DBPROPSET_DBINIT;
dbpropset[0].rgProperties = dbprop;
dbpropset[0].cProperties = 1;

// Set properties into the provider's DSO object
hr = pIDBProperties->SetProperties(1, dbpropset);
if(FAILED(hr))
{
//wcerr << L"Failed to set properties." << endl;
goto Exit;
}

// Get IDBCreateSession interface
hr = pIDBProperties->QueryInterface(IID_ISSCECompact, (void **) &pISSCECompact);
if(FAILED(hr))
{
goto Exit;
}
::DeleteFile(L"\\硬盘\\temp.sdf");
SysFreeString(dbprop[0].vValue.bstrVal);
dbprop[0].vValue.bstrVal = SysAllocString(L"\\硬盘\\temp.sdf");
if(NULL == dbprop[0].vValue.bstrVal)
{
hr = E_OUTOFMEMORY;
goto Exit;
}

hr = pISSCECompact->Compact(1, dbpropset);
if(FAILED(hr))
{
goto Exit;
}
// m_bNotNeedRepair = TRUE;
::CopyFile(L"\\硬盘\\temp.sdf",L"\\硬盘\\1.sdf",FALSE);
::CopyFile(L"\\硬盘\\temp.sdf",L"\\硬盘\\DataBaseBak\\1.sdf",FALSE);

Exit:

VariantClear(&dbprop[0].vValue);

// Release interfaces
if(NULL != pISSCECompact)
{
pISSCECompact->Release();
}
if(NULL != pIDBSchemaRowset)
{
pIDBSchemaRowset->Release();
}
if(NULL != pIDBCreateSession)
{
pIDBCreateSession->Release();
}
if(NULL != pIDBProperties)
{
pIDBProperties->Release();
}
// Uninitialize the environment
::CoUninitialize();

return hr;
}

程序是这么写的,这只是我程序里的一个方法.需要一些头文件,最好先自己找找吧.因为要出差了,没办法给你更多东西了
经常搞网站开发或者数据分析人的估计天天离不开数据库了,目前市面上的数据库产品非常繁多,比如本站博客上也发布的有 Navicat Premium 中文版,但是要找一款兼容各类数据库管理工具,也不是很难,借助 Database .NET 就可以简便地查看,管理数据库。Database .NET 中文版是一个免费多重数据库管理工具,提供更简单方便的可视化界面浏览数据库内容,无须另外安装整个数据库系统,即可直接本地或远程进行数据库的在线存取,方便数据库调试,修改,查询,打印,输出,备份等多方面处理。 Database .NET 中文版 Database .NET 中文版 Database .NET 支持数据库种类 MS Access 97-2003 (*.mdb;*.*) MS Access 2007 (*.accdb) MS Excel 97-2003 (*.xls) MS Excel 2007 (*.xlsx) Firebird (*.gdb;*.fdb) MySQL 5.x or later SQL Server SQL Server CE 3.5sp1 (*.sdf) SQLite (*.db;*.db3;*.sqlite) PostgreSQL Oracle dBASE IV (*.dbf) Database .NET 中文版特色功能 整合支持多种数据库平台,单一文件方便携带与使用 支持语法高亮显示(Syntax Highlighting) 数据库自动化处理(Automatically): 无须通过SQL命令或外部执行 密码保护(Protect Database): Access 97-2003/Access 2007/SQL Server CE/SQLite 自动新建(Create Database): Access 2000/Access 2007/Firebird/SQL Server CE/SQLite 自动压缩(Shrink Database): Access 97-2003/Access 2007/Firebird/MySQL(MyISAM)/SQL Server/SQL Server CE/SQLite/PostgreSQL 备份还原(Backup/Restore Database): MySQL/SQL Server/PostgreSQL 支持代码自动生成(Code Generation): Access/Firebird/MySQL/Oracle/PostgreSQL/SQL Server/SQL Server CE/SQLite 支持数据库服务管理(Service Manager): Firebird/MySQL/PostgreSQL/SQL Server 支持多页签查询(Multiple Query Tab), 多页签结果显示(Multiple Result) 支持范例文件管理(SQL Example Manager) 支持拖放数据库加载(DragDrop Database) 结果输出(Export to CSV/XML/TXT) 多国语言显示(Multiple Language): 预设中英文,并可自行扩充 结果打印(Print query results) Database .NET 中文版是一款台湾软件厂商开发的,支持多重数据库管理工具,支持市面上的大多数数据库系统:例如 Microsoft Access、Generic ODBC、SQL Server、LocalDB、SQL Server Compact、SQL Azure、MySQL、Oracle、Sybase ASE 等等。 Database .NET 中文版 也支持包含数据库对象浏览,数据表与索引编修,数据列编辑,SQL分析与调试,脚本生成,图像化,打印,导入,输出等多方面处理。欢迎数据库爱好者下载使用。而且该数据库管理工具也是提供免费使用,支持免安装,简单易用,支持多国语言,支持 Windows XP/2003/Vista/2008/7/8/10/2012 (x86/x64)等系统平台,但是该应用软件需求.NET 4.x以上的环境要求

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧