以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]数据库压缩  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=101819)

--  作者:wusim
--  发布时间:2017/6/7 20:42:00
--  [求助]数据库压缩

我用动态连接数据库用以下代码:

 

BeforeConnectOuterDataSource

 

If e.Name = "AA" Then

    If Connections.TryConnect(e.ConnectionString) = False Then

        Dim strConn As String = ""

        Dim flag As Boolean = False

        If FileSys.FileExists(e.ProjectPath & "ip.txt") Then

            strC & FileSys.ReadAllText(e.ProjectPath & "ip.txt",Encoding.Default) & ";Persist Security Info=False;Jet OLEDB:Database Password=0856474"

            If Connections.TryConnect(strConn) = False Then

                flag = False

            Else

                e.ConnectionString = strConn

                flag = True

            End If

        End If

        If flag = False Then

            Dim dlg As New OpenFileDialog

            dlg.Filter= "Access文件|*.mdb"

            If dlg.ShowDialog = DialogResult.Ok Then

                e.C & dlg.FileName & ";Persist Security Info=False;Jet OLEDB:Database Password=0856474"

                FileSys.WriteAllText(e.ProjectPath & "ip.txt", dlg.FileName, False, Encoding.Default)

            End If

        End If

    End If

End If

 

我想怎样获取项目所连接数据库文件的目录,与压缩代码怎样结合起来?

CompactAccessFile("C:\\Data\\订单.mdb","123")

[此贴子已经被作者于2017/6/7 20:42:55编辑过]

--  作者:有点色
--  发布时间:2017/6/7 20:55:00
--  

方法一:你可以用一个public变量记录文件的路径;

 

方法二:

 

Dim str As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\abc.mdb;Persist Security Info=False"
Dim mc = System.Text.RegularExpressions.Regex.Matches(str,"(?<=Data Source=).+?(?=;)")
msgbox(mc(0).value)


--  作者:wusim
--  发布时间:2017/6/7 21:36:00
--  

老师,还是不明,能不能详细点。

或者用什么代码读取ip.txt所保存的文件名

 

用这个代码:

Dim ipfile As String = projectpath & "ip.txt"   \'定义Ipfile为配置文件
Dim dbfile As String = filesys.ReadAllText(ipfile)  \'将dbfile定义为配置文件的内容,即数据库的路径
CompactAccessFile(dbfile,"856474")

 


图片点击可在新窗口打开查看此主题相关图片如下:398.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/6/7 22:23:59编辑过]

--  作者:狐狸爸爸
--  发布时间:2017/6/8 8:25:00
--  
指定的文件不存在,你看看是不是代码中的路径或文件名错误。
另外改成英文的文件名看看。

--  作者:wusim
--  发布时间:2017/6/8 19:39:00
--  

真的是不支持中文路径及中文文件名,有什么方法解决?

Dim dbfile As String = filesys.ReadAllText(ipfile)  \'将dbfile定义为配置文件的内容,即数据库的路径
不是把ip.txt的路径读出来吗?

[此贴子已经被作者于2017/6/8 21:59:09编辑过]

--  作者:有点蓝
--  发布时间:2017/6/9 8:48:00
--  
加上编码:http://www.foxtable.com/webhelp/scr/0344.htm

Dim s As string = FileSys.ReadAllText("c:\\data\\table.txt", Encoding.Default)
Output
.Show(s)