我的问题是:如何连接java tp paradox/borland数据库".DB"单个文件?
这就是我所拥有的:
所以,它是Paradox 7数据库文件.
我正在尝试驱动程序:http: //www.hxtt.com/paradox.html和https://code.google.com/archive/p/paradoxdriver/:
String url = "jdbc:paradox:/D:/BABAK/powerGold/SongTitle.DB";
Connection con = DriverManager.getConnection(url);
Run Code Online (Sandbox Code Playgroud)
但两者都抛出异常,例如:
D:/BABAK/powerGold/SongTitle.DB isn't a database directory path!
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它试图找到一些数据库文件夹,但我只有一个文件!此外,"jdbc:paradox:/ D:/ BABAK/powerGold"(所有.DB文件文件夹的路径)也不起作用.
那么,任何人,请帮我弄清楚,如何在我的Java应用程序中打开这种类型的数据库.
我正在与一个拥有现有系统的客户合作,该系统建立在一个显然是Paradox数据库的基础之上.我有一个包含.DB,.MB和.PX文件的zip文件形式的数据库,每个表一个.
我需要获取(一些)这些数据并将其导入到使用MySQL的Web应用程序中.有没有人让我提取这些数据,这不涉及安装Paradox?
如果没有,Paradox是否以某种可读格式导出?无论是SQL还是可以轻松解析的东西?我的客户负责这个系统的人是一名志愿者(他们是一个非盈利组织),所以我想找一个解决方案给他 - 因为上次我要求提供数据,我得到了这个,显然没有好处.
我有一个遗留系统的悖论表,我需要运行一个查询.字段名称中包含空格 - 即"Street 1".当我尝试在delphi中仅针对"Street 1"字段制定查询时,我收到错误 - 关键字的使用无效.令牌:1,行号:1
Delphi V7 - 对象pascal,标准Tquery对象名query1.
我有Paradox 5.x表我需要连接到以便选择和更新.我正在使用OLEDBConnection.
从表中选择我没有问题.当我尝试插入表格时,我遇到了一个问题,当我输入硬编码字段namesi有一个错误:INSERT INTO语句包含以下未知字段名称:...所以我使用OleDbDataReader.GetName(...)来获取字段名.现在我使用从表中重新获得的字段名称,以便插入到表中,我仍然得到相同的错误.
我认为问题在于字段名称:'Truck#1 Serial Number'表名:'Vehicles'
我尝试使用[],."",.[]和.[""].
我已经了解了Borland引擎的需求,但我不确定这是不是问题.先谢谢.
- =诺姆= -
ps我无法更改表的名称,因为我需要连接一个castumer DB.
我添加了我使用的C#代码:
private static string createInsertQueryVehicle(string i_VehicleNumber, string i_VehicleMFG, string i_Truck1SerialNo, string i_Truck2SerialNo, string i_Truck3SerialNo)
{
string tryout = string.Format("INSERT INTO {0} ([{6}], [{7}], [{8}], [{9}], [{10}]) VALUES(RIGHT('{1}',10),'{2}','{3}','{4}','{5}')",
TableName, Vnum, Vinfo, T1Serial, T2Serial, T3Serial, VnumFieldName, VinfoFieldName, T1SerialFieldName
T2SerialFieldName,T3SerialFieldName);
return tryout;
}
Run Code Online (Sandbox Code Playgroud)
试用结束时:
INSERT INTO Vehicles ([Vehicle Number], [Vehicle Mfg], [Truck #1 Serial Number], [Truck #2 Serial Number], [Truck #3 Serial Number]) VALUES(RIGHT('000000010001525',10),'?????? ???','?40011_1','?40011_2','')
Run Code Online (Sandbox Code Playgroud)
编辑:只是想在最后添加我的解决方案:最后,我可以获得的最佳解决方案是使用访问作为连接点使用链接tablse到paradox表,最后处理它作为一个加入DB .....希望它可以帮助某人.
有没有人对Windows 7上的Delphi/Paradox数据库桌面程序的兼容性设置有任何建议,以便在Windows 7(x64)中正确显示?
我们在.exe的"属性"屏幕上的"兼容性"选项卡上尝试了很多选项组合.但是,他们都没有解决我们的问题:
它运行正常,但结构化屏幕上的按钮缺少文本,无法点击.解决方法是使用这些按钮的键盘快捷键,但显然,尽管可行,但这并不理想.
先发制人散文:是的,我们知道我们处于冒险的境地,需要从Paradox迁移出来,Paradox将在某些未来版本的Windows中得不到支持.(但是,我们有一百多万行代码,迁移并不容易......)
我找到了具有不同扩展名的paradox数据库文件.
有db文件,mb文件,dat文件,px文件,XG0文件,XG1文件,XG2文件,XG3文件,XG4文件,YG0文件,YG1文件,YG2文件,YG3文件和YG4文件.
我已经找到了使用gnumeric电子表格打开db文件和px文件的方法.我从db文件中找到了一些所需的数据.但是,其余数据不在db文件中.所以,我必须打开其余的文件.我找不到可以读取这些文件的软件.
想象一下10辆车随机,均匀分布在一个长度为1的圆形轨道上。如果位置用[0,1>范围内的C double表示,那么它们可以排序,车之间的间隙应该是车的位置前面减去后面汽车的位置。最后一个间隙需要添加 1 来解释不连续性。
在程序输出中,最后一列的统计数据和分布与其他列有很大不同。行正确地加到 1。这是怎么回事?
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
int compare (const void * a, const void * b)
{
if (*(double*)a > *(double*)b) return 1;
else if (*(double*)a < *(double*)b) return -1;
else return 0;
}
double grand_f_0_1(){
static FILE * fp = NULL;
uint64_t bits;
if(fp == NULL) fp = fopen("/dev/urandom", "r");
fread(&bits, sizeof(bits), 1, fp);
return (double)bits * 5.421010862427522170037264004349e-020; // https://stackoverflow.com/a/26867455
}
int main()
{
const int n = 10;
double values[n];
double diffs[n]; …Run Code Online (Sandbox Code Playgroud) string Path = @"c:\Database\Mydatabase.db";
string myConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Path + ";Extended Properties=Paradox 5.x;";
// Define the database query
string mySelectQuery = "SELECT id,name FROM people WHERE id < 3;";
// Create a database connection object using the connection string
OleDbConnection myConnection = new OleDbConnection(myConnectionString);
// Create a database command on the connection using query
OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection);
// Open the connection
myCommand.Connection.Open();
// Create a database reader
OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
Run Code Online (Sandbox Code Playgroud)
错误发生在myCommand.Connection.Open(); 它说:'c:\ Database\Mydatabase.db'不是有效的路径.确保路径名拼写正确,并且您已连接到文件所在的服务器.
我试图在C#中读取.db文件.但是,我收到一个错误,我确信文件位于那里,错误对我来说没有意义.请你帮助我好吗 …
我正在处理一个遗留的 VB6 项目,我需要像这样进行 JOIN 调用:
SELECT C.Cnum, C.RealDate, M.Name, R.Price, R.Qnt, R.RealPrice, R.QntP, R.QntR, M.Name
FROM "CHECK" C
LEFT JOIN "RCHECK" R ON C.Cnum = R.Cnum
LEFT JOIN "PCHECK" P ON C.Cnum = P.Cnum
LEFT JOIN "MONEY" M ON P.Curency = M.Sifr
LEFT JOIN "MENU" MN ON R.Sifr = MN.Sifr
WHERE C.Cnum > 0 ORDER BY C.Cnum
Run Code Online (Sandbox Code Playgroud)
我"Driver={Microsoft Paradox Driver (*.db )};DriverID=538"用作连接字符串的一部分,但它似乎不支持多个连接!这很奇怪。
任何想法如何解决/解决它?
是的,当我在 Borland Database Desktop 中运行此查询时,它运行良好。
更新 1:
我的VB代码:
Dim Conn As New ADODB.Connection
Dim sConnStr …Run Code Online (Sandbox Code Playgroud) Curry的悖论 (以与当前编程语言相同的人命名)是一种错误逻辑的构造,它允许人们证明任何东西。
我对逻辑一无所知,但是有多难?
module Main where
import Data.Void
import Data.Function
data X = X (X -> Void)
x :: X
x = fix \(X f) -> X f
u :: Void
u = let (X f) = x in f x
main :: IO ()
main = u `seq` print "Done!"
Run Code Online (Sandbox Code Playgroud)
它肯定会循环。(GHC如何知道?!)
% ghc -XBlockArguments Z.hs && ./Z
[1 of 1] Compiling Main ( Z.hs, Z.o )
Linking Z ...
Z: <<loop>>
Run Code Online (Sandbox Code Playgroud)
fix递归的情况下做同样的事情吗?为什么?