返回   华枫论坛 > ◆ 工作学习◆ > IT交流



发表新主题 回复
 
只看楼主 主题工具
旧 Oct 25th, 2008, 11:12     #1
BRIGHT moon
Senior Member
级别:5 | 在线时长:56小时 | 升级还需:4小时
 
注册日期: Jul 2004
帖子: 129
BRIGHT moon is an unknown quantity at this point
Unhappy 【求助】Access数据库问题

最近需要做个程序,从一个Access数据库中读取一些信息,在C编译时生成一个头文件。对这块不太清楚,请教各位用什么语言比较合适?还有哪里能找到些参考的资料。多谢了先!
BRIGHT moon 当前离线  
回复时引用此帖
旧 Oct 25th, 2008, 12:42   只看该作者   #2
newcomer28
Senior Member
级别:7 | 在线时长:85小时 | 升级还需:11小时级别:7 | 在线时长:85小时 | 升级还需:11小时级别:7 | 在线时长:85小时 | 升级还需:11小时
 
注册日期: Aug 2007
帖子: 209
声望: 0
newcomer28 is an unknown quantity at this point
默认

引用:
作者: BRIGHT moon 查看帖子
最近需要做个程序,从一个Access数据库中读取一些信息,在C编译时生成一个头文件。对这块不太清楚,请教各位用什么语言比较合适?还有哪里能找到些参考的资料。多谢了先!
你先把你的需求说清楚再问.
你是不是就是想直接从access直接读取数据阿?为什么又要“在C编译时生成一个头文件”?
newcomer28 当前离线  
回复时引用此帖
旧 Oct 25th, 2008, 13:02   只看该作者   #3
ChinaSmileJoe
Senior Member
级别:92 | 在线时长:8924小时 | 升级还需:97小时级别:92 | 在线时长:8924小时 | 升级还需:97小时级别:92 | 在线时长:8924小时 | 升级还需:97小时级别:92 | 在线时长:8924小时 | 升级还需:97小时级别:92 | 在线时长:8924小时 | 升级还需:97小时级别:92 | 在线时长:8924小时 | 升级还需:97小时级别:92 | 在线时长:8924小时 | 升级还需:97小时级别:92 | 在线时长:8924小时 | 升级还需:97小时
 
ChinaSmileJoe 的头像
 
注册日期: Jul 2004
帖子: 79,350
积分:163
精华:102
声望: 25766633
ChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond reputeChinaSmileJoe has a reputation beyond repute
默认

引用:
作者: BRIGHT moon 查看帖子
...在C编译时生成一个头文件。对这块不太清楚,请教各位用什么语言比较合适?
问的不清楚。在什么场合用?上面红色标记出来的好像还有些自相矛盾。
帅哥 ChinaSmileJoe 当前离线  
回复时引用此帖
旧 Oct 25th, 2008, 17:45   只看该作者   #4
BRIGHT moon
Senior Member
级别:5 | 在线时长:56小时 | 升级还需:4小时
 
注册日期: Jul 2004
帖子: 129
声望: 0
BRIGHT moon is an unknown quantity at this point
Red face 再澄清一下

是公司有个小ACCESS数据库,里面是客户定制的数据,其中一些需要在我们的嵌入式软件中使用,软件是用C写的。由于数据库中的数据会被更新,所以要求我们的软件在编译时,自动从数据库中读出相应数据,生成一个C的头文件,而不是固定定义在C程序中。
不知道这回说清楚没有,各位请不吝赐教。谢了!
BRIGHT moon 当前离线  
回复时引用此帖
旧 Oct 25th, 2008, 17:49   只看该作者   #5
BRIGHT moon
Senior Member
级别:5 | 在线时长:56小时 | 升级还需:4小时
 
注册日期: Jul 2004
帖子: 129
声望: 0
BRIGHT moon is an unknown quantity at this point
Red face

引用:
作者: BRIGHT moon 查看帖子
是公司有个小ACCESS数据库,里面是客户定制的数据,其中一些需要在我们的嵌入式软件中使用,软件是用C写的。由于数据库中的数据会被更新,所以要求我们的软件在编译时,自动从数据库中读出相应数据,生成一个C的头文件,而不是固定定义在C程序中。
不知道这回说清楚没有,各位请不吝赐教。谢了!
忘了说了,这个程序应该不用C来写,以前看过一个应用是从XML文件中用Python生成C头文件。不知道我这个情况应该用什么。
BRIGHT moon 当前离线  
回复时引用此帖
旧 Oct 25th, 2008, 19:53   只看该作者   #6
newcomer28
Senior Member
级别:7 | 在线时长:85小时 | 升级还需:11小时级别:7 | 在线时长:85小时 | 升级还需:11小时级别:7 | 在线时长:85小时 | 升级还需:11小时
 
注册日期: Aug 2007
帖子: 209
声望: 0
newcomer28 is an unknown quantity at this point
默认

引用:
作者: BRIGHT moon 查看帖子
忘了说了,这个程序应该不用C来写,以前看过一个应用是从XML文件中用Python生成C头文件。不知道我这个情况应该用什么。
还是不太明白,你那个embedded system是和客户的access数据库是有网络连接的?你那个embedded system 中是否有embedded database(sql anywhere or sqlite)?如果有网络连接和embedded database的话,最土的方法就是两边用同样的数据库,然后做同步,当然在客户那里access也要与新的embedded database做同步。或者直接写tcp socket程序,定时或者实时更新数据。
newcomer28 当前离线  
回复时引用此帖
旧 Oct 26th, 2008, 20:03   只看该作者   #7
BRIGHT moon
Senior Member
级别:5 | 在线时长:56小时 | 升级还需:4小时
 
注册日期: Jul 2004
帖子: 129
声望: 0
BRIGHT moon is an unknown quantity at this point
Smile

引用:
作者: newcomer28 查看帖子
还是不太明白,你那个embedded system是和客户的access数据库是有网络连接的?你那个embedded system 中是否有embedded database(sql anywhere or sqlite)?如果有网络连接和embedded database的话,最土的方法就是两边用...
access数据库是在本地,我的嵌入式程序中没有数据库,所以需要编译时生成一个头文件来包括数据库中的一些内容。由于这样客户修改相应数据时我们只需要更新数据库,不需要直接修改程序。谢谢。
BRIGHT moon 当前离线  
回复时引用此帖
旧 Oct 26th, 2008, 22:08   只看该作者   #8
dpff
Senior Member
级别:37 | 在线时长:1554小时 | 升级还需:42小时级别:37 | 在线时长:1554小时 | 升级还需:42小时级别:37 | 在线时长:1554小时 | 升级还需:42小时级别:37 | 在线时长:1554小时 | 升级还需:42小时级别:37 | 在线时长:1554小时 | 升级还需:42小时
 
注册日期: Sep 2006
帖子: 1,264
积分:1
精华:1
声望: 515313
dpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond repute
默认

In short, you need something from Access at compiling time and you have control over the environment. ADO is your best choice as it can be used from manu languages.
dpff 当前离线  
回复时引用此帖
旧 Oct 27th, 2008, 18:28   只看该作者   #9
BRIGHT moon
Senior Member
级别:5 | 在线时长:56小时 | 升级还需:4小时
 
注册日期: Jul 2004
帖子: 129
声望: 0
BRIGHT moon is an unknown quantity at this point
默认

引用:
作者: dpff 查看帖子
In short, you need something from Access at compiling time and you have control over the environment. ADO is your best choice as it can be used from m...
听起来很复杂呀,有没有简单的办法呢?ADO没有用过。多谢回复。
BRIGHT moon 当前离线  
回复时引用此帖
旧 Oct 28th, 2008, 14:58   只看该作者   #10
不良牛
Senior Member
级别:15 | 在线时长:315小时 | 升级还需:5小时级别:15 | 在线时长:315小时 | 升级还需:5小时级别:15 | 在线时长:315小时 | 升级还需:5小时
 
注册日期: Jul 2004
帖子: 318
积分:2
精华:1
声望: 401
不良牛 is just really nice不良牛 is just really nice不良牛 is just really nice不良牛 is just really nice不良牛 is just really nice
默认

If you know python, try following this:
http://www.ecp.cc/pyado.html

Actually, u can use any language, using ado as db interface, read dataset from access, and write out text file(the c header file).
不良牛 当前离线  
回复时引用此帖
旧 Oct 28th, 2008, 15:07   只看该作者   #11
TIMFLYING
Senior Member
级别:66 | 在线时长:4726小时 | 升级还需:31小时级别:66 | 在线时长:4726小时 | 升级还需:31小时级别:66 | 在线时长:4726小时 | 升级还需:31小时级别:66 | 在线时长:4726小时 | 升级还需:31小时级别:66 | 在线时长:4726小时 | 升级还需:31小时级别:66 | 在线时长:4726小时 | 升级还需:31小时
 
注册日期: Jul 2004
帖子: 5,218
积分:14
精华:4
声望: 891111
TIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond reputeTIMFLYING has a reputation beyond repute
默认

ODBC is the standard of ms database connection for non-ms language
TIMFLYING 当前离线  
回复时引用此帖
旧 Oct 29th, 2008, 00:26   只看该作者   #12
Hello World
Senior Member
级别:29 | 在线时长:986小时 | 升级还需:34小时级别:29 | 在线时长:986小时 | 升级还需:34小时级别:29 | 在线时长:986小时 | 升级还需:34小时级别:29 | 在线时长:986小时 | 升级还需:34小时级别:29 | 在线时长:986小时 | 升级还需:34小时
 
注册日期: Apr 2006
帖子: 290
声望: 1415444
Hello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond reputeHello World has a reputation beyond repute
默认

引用:
作者: BRIGHT moon 查看帖子
最近需要做个程序,从一个Access数据库中读取一些信息,在C编译时生成一个头文件。对这块不太清楚,请教各位用什么语言比较合适?还有哪里能找到些参考的资料。多谢了先!
用Access自带的VBA生成头文件,在用户保存数据的时候执行。
Hello World 当前离线  
回复时引用此帖
旧 Nov 1st, 2008, 10:12   只看该作者   #13
BRIGHT moon
Senior Member
级别:5 | 在线时长:56小时 | 升级还需:4小时
 
注册日期: Jul 2004
帖子: 129
声望: 0
BRIGHT moon is an unknown quantity at this point
Smile

多谢各位的回复,估计我得先把这几个概念查清楚ADO, VBA,但最后的这几个解释应该就可以解决我的问题了。
BRIGHT moon 当前离线  
回复时引用此帖
旧 Nov 1st, 2008, 16:26   只看该作者   #14
dpff
Senior Member
级别:37 | 在线时长:1554小时 | 升级还需:42小时级别:37 | 在线时长:1554小时 | 升级还需:42小时级别:37 | 在线时长:1554小时 | 升级还需:42小时级别:37 | 在线时长:1554小时 | 升级还需:42小时级别:37 | 在线时长:1554小时 | 升级还需:42小时
 
注册日期: Sep 2006
帖子: 1,264
积分:1
精华:1
声望: 515313
dpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond reputedpff has a reputation beyond repute
默认

简单的说,ADO是一个微软提供的方便应用程序访问数据库的统一接口。它的前台通过提供统一的接口以及自动化对象,可以在很多种语言中使用。它的后台通过连接不同的OLEDB/ODBD Provider可以来连接不同的数据库,例如Access,SQLSERVER、Oracle、DB2等。Access本身提供了另外一套访问它内部数据的接口,你可以根据自己的需要挑简单的使用。

这是一个使用Access 12的例子:

代码:
// import type library of Access 12
#import <libid:4AC9E1DA-5BAD-4AC7-86E3-24F4CDCECA28> rename("EOF", "EndOfFile")

HRESULT MyFunc(LPCTSTR lpszDB)
{
	DAO::_DBEnginePtr spEngine;
	HRESULT hr = spEngine.CreateInstance(__uuidof(DAO::DBEngine));
	if(SUCCEEDED(hr))
	{
		DAO::DatabasePtr spDB;
		hr = spEngine->raw_OpenDatabase(_bstr_t(lpszDB), vtMissing, vtMissing, vtMissing, &spDB);
		if(SUCCEEDED(hr))
		{
			DAO::RecordsetPtr spRst;
			hr = spDB->raw_OpenRecordset(_bstr_t(L"SELECT * FROM MyTable ORDER BY MyCol1"), _variant_t(DAO::dbOpenDynaset), _variant_t(DAO::dbForwardOnly), _variant_t(DAO::dbOptimistic), &spRst);
			if(SUCCEEDED(hr))
			{
				while(!spRst->EndOfFile)
				{
					CString strCol1 = spRst->GetCollect(L"MyCol1").bstrVal;
					long nCol2 = (LONG)spRst->GetCollect(L"MyCol2");
					//...
					
					spRst->MoveNext();
				}
			}
		}
	}
	return hr;
}
dpff 当前离线  
回复时引用此帖
旧 Nov 2nd, 2008, 18:34   只看该作者   #15
BRIGHT moon
Senior Member
级别:5 | 在线时长:56小时 | 升级还需:4小时
 
注册日期: Jul 2004
帖子: 129
声望: 0
BRIGHT moon is an unknown quantity at this point
默认 多谢

谢谢dpff的回复和例子,我要求的应用应该很简单,很可能ACCESS自带的接口就可以解决。你的例子还是挺有帮助的。
BRIGHT moon 当前离线  
回复时引用此帖
发表新主题 回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为格林尼治时间 -4。现在的时间是 12:24

请尊重文章原创者,转帖请注明来源及原作者。
凡是本站用户自行发布的任何信息,皆不代表本站的立场,
华枫网站不确保各类信息的正确性和可靠性,也不承担由此而导致的任何直接或间接损失以及任何法律责任。

Copyright © 1999-2024 Chinasmile