打开数据库的命令4种打开方式

Office中国(office-cn.net),专业Office论坛
当前位置: >
四种用代码打开外部Access(MDB)的方法
时间: 17:04 来源:office中国 作者:andymark 阅读:次
& &Dim AccessPath As String
& &Dim DbPath As String
& &AccessPath = SysCmd(acSysCmdAccessDir) &&MSACCESS.EXE&
& &DbPath = &C:\db1.mdb&
& &Shell AccessPath && & & DbPath
& & Dim DbPath As String
& & DbPath = &C:\db1.mdb&
& & Application.FollowHyperlink DbPath
& Private Declare Function ShellExecute Lib &shell32.dll& _
& & & & & & & &Alias &ShellExecuteA& _
& & & & & & & &(ByVal hwnd As Long, _
& & & & & & & &ByVal lpOperation As String, _
& & & & & & & &ByVal lpFile As String, _
& & & & & & & &ByVal lpParameters As String, _
& & & & & & & &ByVal lpDirectory As String, _
& & & & & & & &ByVal nShowCmd As Long) As Long
& &Sub OpenBd()
& & & Dim DbPath As String
& & & DbPath = &C:\db1.mdb&
& &ShellExecute 0&, vbNullString, DbPath, vbNullString, vbNullString, 0&;
& & Dim DbPath As String
& & Dim oApp As Access.Application
& & DbPath = &c:\db1.mdb&
& & & Set oApp = New Access.Application
& & & & &With oApp
& & & & & & .Visible = True
& & & & & & .OpenCurrentDatabase DbPath
& & & & & & .DoCmd.OpenForm &MyForm&
& & & & & & .DoCmd.OpenReport &MyReport&, acViewPreview
& & & & & & .Run &MyFuncion&
& & & & &End With
& & Set oApp = Nothing
(责任编辑:admin)[Android]Android数据的四种存储方式 - Ron Ngai - 博客园
Android提供以下四种存储方式:
SharePreference
ContentProvider
Android系统中数据基本都是私有的,一般存放在&data/data/程序包名&目录下。如果要实现数据共享,正确的方式是使用ContentProvider。
SharedPreference
SharedPreference是一种轻型的数据存储方式,实际上是基于XML文件存储的&key-value&键值对数据。通常用来存储程序的一些配置信息。其存储在&data/data/程序包名/shared_prefs目录下。
SharedPreference本身只能获取数据,不支持存储和修改。存储和修改要通过Editor对象来实现。
修改和存储数据
根据Context的getSharedPrerences(key, [模式])方法获取SharedPreference对象;
利用SharedPreference的editor()方法获取Editor对象;
通过Editor的putXXX()方法,将键值对存储数据;
通过Editor的commit()方法将数据提交到SharedPreference内。
综合例子:
& &&//设置单例里面的数值,然后再将数值写入到SharedPreference里
private String setCityName(String _cityName){
City.getCity().setCityName(_cityName);
Context ctx =MainActivity.this;
SharedPreferences sp =ctx.getSharedPreferences("CITY", MODE_PRIVATE);
Editor editor=sp.edit();
editor.putString("CityName", City.getCity().getCityName());
return City.getCity().getCityName();
同样根据Context对象获取SharedPreference对象;
直接使用SharedPreference的getXXX(key)方法获取数据。
综合例子:
& &&//从单例里面找,如果不存在则在SharedPreferences里面读取
private String getCityName(){
String cityName = City.getCity().getCityName();
if(cityName==null ||cityName==""){
Context ctx =MainActivity.this;
SharedPreferences sp =ctx.getSharedPreferences("CITY", MODE_PRIVATE);
City.getCity().setCityName(sp.getString("CityName", "广州"));
return City.getCity().getCityName();
getSharedPrerences(key, [模式])方法中,第一个参数其实对应到XML的文件名,相同key的数据会保存到同一个文件下。
使用SharedPreference的getXXX(key)方法获取数据的时候,如果key不存在的活,不会出现报错,会返回none。建议使用getXXX()的时候指定默认值。
SQLite是一个轻量级关系型数据库,既然是关系型数据库,那操作起来其实跟mysql、sql server差不多的。
需要注意的一点是,SQLite只有NULL、INTEGER、REAL(浮点数)、TEXT(字符串)和BLOB(大数据)五种类型,不存在BOOLEAN和DATE类型。
创建数据库
& &&& &&通过openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)方法创建,如果库已创建,则打开数据库。
SQLiteDatabase&db&=this.openOrCreateDatabase("test_db.db",&Context.MODE_PRIVATE,&null);
& &&& &&SQLiteDatabase没有提供创建表的方法,所以要靠execSQL()方法来实现。看名字也知道execSQL()用于直接执行sql的。
String sql="create table t_user (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL,password TEXT NOT NULL)";
db.execSQL(sql);
& &&& &&使用SQLiteDatabase的insert(String table, String nullColumnHack, ContentValues values)方法插入数据。ContentValues&类,类似于java中的Map,以键值对的方式保存数据。
ContentValues values=new ContentValues();
values.put("name", "liangjh");
values.put("password", "123456");
db.insert("t_user", "id", values);
& &&& &&删除数据就比较直接了。使用SQLiteDatabase的delete(String table, String whereClause, String[] whereArgs)实现。如果不想把参数写在whereArgs里面,可以直接把条件写在whereClause里面。
// 方式1 直接将条件写入到条件里面(个人觉得容易被注入,但其实数据都在客户端,没啥安全性可言)
db.delete("t_user", "id=1", null);
// 方式2 条件分开写,感觉比较安全
db.delete("t_user", "name=? and password =?", new String[]{"weiyg","112233"});
& &&& &&查询有2个方法,query()和rawQuery()两个方法,区别在于query()是将sql里面的各参数提取出query()对应的参数中。可参考下面例子。
// 使用rawQuery
// Cursor c = db.rawQuery("select * from t_user", null);
// db.rawQuery("select * from t_user where id=1", null);
// db.rawQuery("select * from t_user where id=?", new String[]{"1"});
// 使用query()
Cursor c = db.query("t_user", new String[]{"id","name"}, "name=?", new String[]{"weiyg"}, null, null, null);
c.moveToFirst();
while(!c.isAfterLast()){
String msg="";
for(int i=0,j=c.getColumnCount();i&j;i++){
msg+="--"+c.getString(i);
Log.v("SQLite", "data:"+msg);
c.moveToNext();
& &&& &&使用SQLiteDatabase的update(String table, ContentValues values, String whereClause, String[] whereArgs)可以修改数据。whereClause和whereArgs用于设置其条件。ContentValues对象为数据。
ContentValues values=new ContentValues();
values.put("password", "111111");
// 方式1 条件写在字符串内
db.update("t_user", values, "id=1", null);
// 方式2 条件和字符串分开
db.update("t_user", values, "name=? or password=?",new String[]{"weiyg","123456"});
无论何时,打开的数据库,记得关闭。
db.close()
另外使用beginTransaction()和endTransaction()可以设置事务。
& &&& &&文件储存方式,很久以前讲过,这里不说明。
ContentProvider
ContentProvider相对于其它的方式比较复杂,当然其功能相对于其它的方式也是革命性的改变。它能够实现跨应用之间的数据操作。利用ContentResolver对象的delete、update、insert、query等方法去操ContentProvider的对象,让ContentProvider对象的方法去对数据操作。实现方式为:
在A程序中定义一个ContentProvider,重载其增删查改等方法;
在A程序中的AndroidManifest.xml中注册ContentProvider;
在B程序中通过ContentResolver和Uri来获取ContentProvider的数据,同样利用Resolver的增删查改方法来获得和处理数据。
在A程序定义一个Provider
新建一个类,继承ContentProvider,并重载其delete()、insert()、query()、update()、getType()、onCreate()方法。譬如下面的例子,重载其onCreate和query方法。
1 public class MyProvider extends ContentProvider {
public int delete(Uri uri, String selection, String[] selectionArgs) {
// TODO Auto-generated method stub
public String getType(Uri uri) {
// TODO Auto-generated method stub
return null;
public Uri insert(Uri uri, ContentValues values) {
// TODO Auto-generated method stub
return null;
public boolean onCreate() {
// 新建个数据库并插入一条数据
SQLiteDatabase db=this.getContext().openOrCreateDatabase("test_db2.db", Context.MODE_PRIVATE, null);
db.execSQL("CREATE TABLE t_user (id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT NOT NULL)");
ContentValues values=new ContentValues();
values.put("name", "liangjh2");
db.insert("t_user", "id", values);
db.close();
return false;
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
// 获取数据
SQLiteDatabase db=this.getContext().openOrCreateDatabase("test_db2.db", Context.MODE_PRIVATE, null);
Cursor c = db.query("t_user", null, null, null, null, null, null);
db.close();
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
// TODO Auto-generated method stub
注册ContentProvider
在AndroidManifest.xml中声明ContentProvider,authorities属性定义了ContentProvider的Uri标识。关于Uri标识属另一个范畴,自行查询。provider标识要放在&application&&/application&里面。如果遇到了"Permission Denial: opening provide..."的错误,可以试试在节点加&android:exported="true"&。
&application ...&
&provider android:name=".MyProvider" android:authorities="com.example.androidtestdemo" android:exported="true"/&
&/application&
在B程序获取数据
用Context获取到当前的ContentResolver,根据Uri地址和ContentResolver的query方法获取A程序的数据。Uri地址和A程序中AndroidManifest.xml定义的autorities要一致。当然,同类可以进行其它的操作。
Context ctx=MainActivity.this;
ContentResolver resolver =ctx.getContentResolver();
Uri uri=Uri.parse("content://com.example.androidtestdemo");
Cursor c = resolver.query(uri, null, null, null, null);
c.moveToFirst();
while(!c.isAfterLast()){
for(int i=0,j=c.getColumnCount();i&j;i++){
Log.v("Android2",""+c.getString(i));
c.moveToNext();二次元同好交流新大陆
扫码下载App
汇聚2000万达人的兴趣社区下载即送20张免费照片冲印
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(1574)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'jsvascrip操作数据库四种方法',
blogAbstract:'
&script&language=\"javascript\"&function&database(){var&conn&=&new&ActiveXObject(\"Adodb.Connection\");conn.Open(\"driver={SQL&server};database=数据库名;server=服务器;uid=用户名;pwd=密码\")var&rs_str&=&new&ActiveXObject(\"Adodb.Recordset\");&rs_str.Open&(\"SQL查询语句\",conn,1,1)if&(!rs_str.eof)&{',
blogTag:'javascript,特效,操作,数据库,mysql',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:8,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}Oracle数据库的启动关闭的几种方式_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
Oracle数据库的启动关闭的几种方式
上传于||暂无简介
大小:5.05KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢

我要回帖

更多关于 打开数据库的命令 的文章

 

随机推荐