语言:C#,系统:Windows7,Excel 2007
我想从一些数据创建.DBF,我想从Excel 2007打开它.它可以是dBase或foxpro.我目前正在使用FoxPro9(顺便说一句,这段代码来自互联网):
OleDbConnection con = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=C:\\Temp\\;");
con.Open();
OleDbCommand cmd1 = new OleDbCommand("Create Table TestDBF (Field1 I, Field2 C(10))", con);
OleDbCommand cmd2 = new OleDbCommand("Insert Into TestDBF Values (1, 'Hello')", con);
OleDbCommand cmd3 = new OleDbCommand("Insert Into TestDBF Values (2, 'World')", con);
cmd1.ExecuteNonQuery();
cmd2.ExecuteNonQuery();
cmd3.ExecuteNonQuery();
con.Close();
Run Code Online (Sandbox Code Playgroud)
这会生成我可以在DbfViewer中打开的文件,但是,我无法在Excel 2007中打开它,也不能在我拥有的某些应用程序中使用.我可以使用DbfViwer手动将FoxPro .dbf转换为dbaseIII dbf,但我希望它是自动的.
有任何想法吗?
提前致谢
嗨,任何人都可以推荐一个免费的组件,我可以用来将dbase III表加载到Delphi中,最好不使用BDE.
有点像TTable,但对于Dbase
谢谢
科林
我刚接触锈并创建POC来将dbf文件转换为csv。我正在.dbf使用rust库dbase读取文件。
问题是,当我.dbf使用dbfview创建样本文件时,代码工作正常。但是,当我使用.dbf 实时使用的文件时。我收到以下错误。
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: InvalidFieldType('M')', src/libcore/result.rs:999:5
Run Code Online (Sandbox Code Playgroud)
这是我从给定链接使用的代码。
use dbase::FieldValue;
let records = dbase::read("tests/data/line.dbf").unwrap();
for record in records {
for (name, value) in record {
println!("{} -> {:?}", name, value);
match value {
FieldValue::Character(string) => println!("Got string: {}", string),
FieldValue::Numeric(value) => println!("Got numeric value of {}", value),
_ => {}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我认为这些^M显示的字符由附加windows。我该怎么办以解决此错误并成功读取文件。任何帮助都感激不尽。
如您所知,没有用于dBase的x64驱动程序。
“ http://msdn.microsoft.com/zh-cn/vfoxpro/bb190289.aspx ”
我试图制作一个。
它比ODBC快得多。但是只有一个问题。
我无法确定是否删除了一行。
首先,我必须声明,对于Delphi来说,我是一个完整的新手,虽然我在学校做了一些Turbo Pascal编程,大约十四年前......
我有一个商业Delphi程序,它使用dBase数据库和BDE来访问它们.我基本上需要将用C#编写的另一个应用程序连接到这个数据库,以便能够执行诸如select,insert,update和delete之类的SQL操作.
不幸的是,针对dBase使用OLEDB导致索引损坏,只有原生BDE应用程序似乎能够安全地访问数据.
一般的想法是创建一个简单的Delphi控制台应用程序,它可以从标准输入(Read/ReadLn)读取SQL语句,并将CSV数据输出到标准输出(WriteLn).
我该怎么做呢?
我已成功获得简单的TTable访问权限,使用以下代码:
tbl := TTable.Create(nil);
tbl.DatabaseName := 'Exceline';
tbl.TableName := 'KUNDE.DBF';
tbl.Active := True;
WriteLn(tbl.RecordCount);
tbl.Active := False;
Run Code Online (Sandbox Code Playgroud)
有没有办法实现相同但通过执行直接SQL语句?
我疯了很多研究找到php7的dbase dll,我没有找到它.
有人找到了吗?或者你知道是否有办法从旧版本重建dbase.dll来创建一个新版本.
[15-Oct-2015 23:20:30 UTC] PHP Warning: PHP Startup: dbase: Unable to initialize module
Module compiled with module API=20131226
PHP compiled with module API=20141001
These options need to match
in Unknown on line 0
Run Code Online (Sandbox Code Playgroud)
在这个错误中,我们可以看到模块是使用模块20131226编译的,有一种方法可以使用新模块来获取它并重建它吗?
谢谢你们
我在十六进制编辑器中打开了 dBase (.dbf) 文件。见下文。我圈出了包含“语言驱动程序名称”的字段。我如何解释该字段?该字段是字符串吗?如果它是一个字符串,那么为什么它包含一堆空(十六进制 0)字符?
我找到了一个旧的 dbase 数据库。每个“表”有3个同名但扩展名不同的文件。
例子:
为什么这些不同。我可以轻松打开和使用 .dft 文件。我可以忽略其他的吗?或者我会因此丢失任何数据吗?
我在我的c#代码中使用odbc查询dbase .dbf文件,并且在查询中使用'where'子句时出现问题.如果我只是"从FILE.DBF中选择*",我可以检索和阅读记录,我在网页上看到的每个例子,当我搜索答案时都显示了那么多的语法.我已经尝试了多种方法来构造带有'where'的select语句,到目前为止它们都失败了.所以,我想知道我是否不能在针对dbase文件的查询中使用'where'子句,或者我是否还没有找到正确的语法.
我试过了:
select * from FILE.DBF where GROUP = 21;
select * from FILE.DBF where GROUP = '21';
select * from FILE.DBF where GROUP = "21";
Run Code Online (Sandbox Code Playgroud)
所有这些的结果是错误:错误[42000] [Microsoft] [ODBC dBase驱动程序] WHERE子句中的语法错误.
任何帮助将不胜感激.
我有一个简单的测试Windows窗体应用程序.我第一次在VS中运行它一切正常.如果我再次立即运行它会在adapter.fill(ds)上抛出有关读保护内存的异常; 线.如果我等待5分钟左右,应用程序将再次运行.我想从stackoverflow社区获得一些关于我被愚弄的建议.我想这是一些连接超时.代码如下:
C#
public void Button1_Click(object sender, EventArgs e)
{
string connectionString = @"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=x:\CMSBak\ISP;";
var conn = new OdbcConnection(connectionString);
conn.Open(); // Open the connection
string strQuery = "SELECT * FROM ISPINMAS";
var adapter = new OdbcDataAdapter(strQuery, conn);
var ds = new DataSet();
try
{
adapter.Fill(ds);
}
catch (Exception)
{
conn.Close();
throw;
}
DataTable dt = ds.Tables[0];
dataGridView1.DataSource = dt.DefaultView;
conn.Close(); // That's it, now close the connection
}
Run Code Online (Sandbox Code Playgroud) 我在 VB.net 中有一个程序,运行时确定表是否存在。如果它不存在,我想在 SQL Server 上创建一个与本地 FoxPro 表具有相同架构的表。这是可以做的事情吗?
这是我到目前为止所拥有的。现在它只是从 Visual Foxpro 表中获取架构并显示它。不知道从这里去哪里。有任何想法吗?
Private Sub dwprm01()
Try
Dim tableName As String = "dwprm01"
Dim tableExists As Boolean = False
Dim foxConn As New OleDbConnection("Provider=vfpoledb.1;Data Source=Z:\update_dwprm01\" & tableName & ".DBF;Collating Sequence=general;")
sConn.Open()
Dim restrictions(3) As String
restrictions(2) = tableName
Dim dbTbl As DataTable = sConn.GetSchema("Tables", restrictions)
Console.WriteLine("Checking if " & tableName & " exists")
If dbTbl.Rows.Count = 0 Then
'Table does not exist
tableExists = False
Console.WriteLine(tableName & " does not exist") …Run Code Online (Sandbox Code Playgroud) 我需要从php编写一个borland数据库引擎(dbase).我知道这不是推荐的,可能是个坏主意,但我必须将我的数据链接到只能读取dbase文件的软件.
所以任何人都知道如何从头开始创建一个来自php的borland db?