========================================================================
    预抄写SDK：scbc.tools.dll概述
========================================================================
/////////////////////////////////////////////////////////////////////////////
sdk包含以下文件：
scbc.tools.h
  sdk头文件。
tableinfo.h
    sdk相关结构体头文件。
scbc.tools.lib
   sdk静态库文件。
scbc.tools.dll
   sdk动态库文件。

/////////////////////////////////////////////////////////////////////////////
SDK开发说明：
IDE：VS2008(共享DLL),使用多字节字符集
数据库：使用sqlite3做为本地数据库
https：curlib+openssl+zlib
校验：md5
Windows：xp sp3

/************************************************************************************************/
/*	                                   简要接口说明：                                           */
/************************************************************************************************/
1、extern SCBCTOOLS_API bool ScbcInit(const char* lpOrder);
描述：使用批次号初始化https接口环境。
	DownloadMidData、ReportKeyCopyResults、BatchReportKeyCopyResults前调用;
参数：lpOrder 批次号;
返回：
	true成功;false失败;


2、extern SCBCTOOLS_API int QueryMidInfo(const char* lpOrder);
描述：查询指定批次MID信息。
	一般用于DownloadMidData调用后，查询是否下载成功；或者下载前，查询该批次是否已经在下载中;
参数：lpOrder 批次号;
返回：
	0=表示该批次未下载过，不存在数据库中；
	1=表示该批次已存在，但未下载完成，请调用DownloadMidData完成下载；
	2=表示该批次已完成下载；
	3=表示该批次下载失败（再次调用DownloadMidData可断点下载）;
	-1=表示lpOrder参数空;
	-2=表示打开db失败;
	-3=表示查询批次出错;
	-4=表示数据异常;


3、extern SCBCTOOLS_API int DownloadMidData(const char* lpOrder);
描述：下载指定批次MID数据;（后台线程下载），调用QueryMidInfo查询是否下载完成;
参数：lpOrder 批次号;
返回：
	0=表示该批次不存在云服务器（批次信息未导入）；
	1=表示该批次在云服务器中存在，下载任务后台启动中；
	2=表示该批次已完成下载；
	-1=表示lpOrder参数空;
	-2=表示打开db失败;
	-3=表示查询批次出错;
	-4=表示数据异常;
	-5=表示https网络请求失败;


4、extern SCBCTOOLS_API int QueryKeyInfo(const char* lpSN, SNKeys &snKeys);
描述：查询SN对应的Keys;
参数：
	lpSN 条码;
	lpKeys 返回的字符串,json数组格式;
	len lpkeys缓存区长度;
返回：
	0=表示没有该sn，不存在数据库中;
	1=表示获取sn绑定的keys成功;
	-1=表示lpSN参数空;
	-2=表示打开数据库失败;
	-3=表示查询SN出错;
	-4=表示数据异常;


5、extern SCBCTOOLS_API int UpdateKeyCopyStatus(const char* lpSN);
描述：更新抄写状态;（在抄写key成功后调用该接口）
参数：lpSN 条码;
返回：
	0=表示更新sn的抄写状态失败;
	1=表示更新sn的抄写状态成功;
	-1=表示lpSN参数空;
	-2=表示打开数据库失败;


6、extern SCBCTOOLS_API int UpdateKeyReportStatus(const char* lpSN);
描述：更新上报状态;（的UpdateKeyCopyStatus成功后调用）
参数：lpSN 条码;
返回：
	0=表示更新sn的上报状态失败;
	1=表示更新sn的上报状态成功;
	-1=表示lpSN参数空;
	-2=表示打开数据库失败;


7、extern SCBCTOOLS_API int ReportKeyCopyResults(const char* lpSN);
描述：上报抄写结果;
参数：lpSN 条码;
返回：
	0=表示在数据库中查询不到该sn的抄写信息，或者该sn未抄写成功；
	1=表示上报抄写结果成功，且更新上报状态成功；
	-1=表示lpSN参数空;
	-2=表示打开db失败;
	-3=表示查询sn出错;
	-4=表示数据异常;
	-5=表示https网络请求失败;
	-6=表示解析https结果异常;
	-7=表示上报抄写结果失败;
	-8=表示上报抄写结果成功，但更新上报状态失败;此时，需调用UpdateKeyReportStatus更新上报状态;


8、extern SCBCTOOLS_API int BatchReportKeyCopyResults();
描述：批量上报抄写结果。从数据库查询出200条未上报的sn进行上报;
参数：无;
返回：
	0=表示在数据库中查询不到未上报的sn抄写信息，或者所有sn未抄写成功；
	1=表示上报抄写结果成功，且更新上报状态成功；
	-1=表示lpSN参数空;
	-2=表示打开db失败;
	-3=表示查询sn出错;
	////-4=表示数据异常;
	-5=表示https网络请求失败;
	-6=表示解析https结果异常;
	-7=表示上报抄写结果失败;
	-8=表示上报抄写结果成功，但批量更新上报状态失败;


9、extern SCBCTOOLS_API int QueryBidInfo(const char* lpOrder, BidInfo& binfo);
描述：查询批次信息：应下载sn数、实际下载sn数、抄写成功数量、上报成功数量;
参数：lpOrder 批次号; binfo 返回的bid信息;
返回：
	0=表示订单不存在数据库中;
	1=表示获取bid信息成功;
	-1=表示lpOrder参数空;
	-2=表示打开数据库失败;
	-3=表示查询订单出错;
	-4=表示数据异常;
注意：一般情况下，应下载数sn数量=实际下载sn数量;


10、extern SCBCTOOLS_API int RemoveBidData(const char* lpOrder);
描述：删除批次相关的所有表数量;
参数：lpOrder 批次号;
返回：
	0=表示删除失败;
	1=表示删除成功;
	-1=表示lpOrder参数空;
	-2=表示打开数据库失败;



