如何使用 MS Ole DB 提供程序在两个 FoxPro 数据库之间创建联接?

2024-01-24

问题:

我正在使用现有的商业 MS Visual Foxpro 应用程序,并且需要使用 C# 应用程序直接从数据库中提取数据。不幸的是,并非所有表都存储在同一个数据库中,一些记录存储在按年份细分的数据库中。如何使用单个联接创建针对这两个数据库的查询?

我正在使用微软的

更多详情:

本质上,客户信息存储在一个数据库中,客户购买历史记录存储在按年份细分的数据库中。因此,我尝试创建一个简单的查询来打印客户及其今年最近的购买情况。

以图形形式,数据库的文件结构如下所示:

Data\
 +-2009\
 |  +-MyDB.dbc
 |  +-Sales.dbf
 +-2010\
 |  +-MyDB.dbc
 |  +-Sales.dbf
 +-MyDB.dbc
 +-Customers.dbf

目前我可以单独连接到每个数据库并查询它们:

// This works to connect to the customer DB
string connectionPath1 = @"Provider=vfpoledb.1;Data Source=E:\Data\MyDB.dbc";
OleDbConnection conn1 = new OleDbConnection(connectionPath1);
OleDbCommand command1 = new OleDbCommand(@"SELECT * FROM Customers", conn1);
OleDbDataReader reader1 = command1.ExecuteReader();

// This works to connect to the annual sales record DB
string connectionPath2 = @"Provider=vfpoledb.1;Data Source=E:\Data\2010\MyDB.dbc";
OleDbConnection conn2 = new OleDbConnection(connectionPath2);
OleDbCommand command2 = new OleDbCommand(@"SELECT * FROM Sales", conn2);
OleDbDataReader reader2 = command2.ExecuteReader();

我不能做的是执行我的 join 语句:

//How do I do this?
OleDbConnection connMagic = new OleDbConnection(connectionPath1, connectionPath2); //non-valid code
OleDbCommand commandIWant = new OleDbCommand(@"SELECT Customers.Name, Sales.Item, Sales.Date FROM Customers LEFT JOIN Sales ON (Customers.ID=Sales.CustomerID)", connMagic);
OleDbDataReader reader3 = commandIWant.ExecuteReader();

如果目录结构如您所指示...其中不同的年份都位于父级公共目录下,您可以通过包含相对路径直接查询所有这些...

select 
      a1.Whatever,
      b1.Sales1
   from
      Customers a1,
      2009\Sales b1
   where 
      a1.CustomerID = b1.CustomerID
union all
select 
      a1.Whatever,
      b1.Sales1
   from
      Customers a1,
      2010\Sales b1
   where 
      a1.CustomerID = b1.CustomerID
union ... 

您甚至不必限定实际的 DBC,OleDB 应该自动检测它,但将其包含在内不会有什么坏处,正如您的原始样本所示......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 MS Ole DB 提供程序在两个 FoxPro 数据库之间创建联接? 的相关文章

  • 在路由mvc 4中添加公司名称

    我一直在尝试为 Facebook 等用户提供在 URL 中添加公司名称的选项 http localhost 50753 MyCompany Login 我尝试过不同的网址 但没有成功 routes MapRoute name Default
  • C++ 长 switch 语句还是用地图查找?

    在我的 C 应用程序中 我有一些值充当代表其他值的代码 为了翻译代码 我一直在争论使用 switch 语句还是 stl 映射 开关看起来像这样 int code int value switch code case 1 value 10 b
  • 删除是如何工作的? [复制]

    这个问题在这里已经有答案了 可能的重复 C 编程 free 如何知道要释放多少 https stackoverflow com questions 1518711 c programming how does free know how m
  • 多级排序

    我有一个表 其中包含一些记录 其中包含名称 评级等字段 我首先想要根据评级将结果限制为 20 进行排序 然后在此结果集上想要进一步应用基于名称的排序 我知道要排序我们需要使用像这样的查询 Select from table order by
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • 检测到堆栈崩溃

    我正在执行我的 a out 文件 执行后 程序运行一段时间 然后退出并显示消息 stack smashing detected a out terminated Backtrace lib tls i686 cmov libc so 6 f
  • Gwan C#,如何获取HTTP标头?

    我需要它来重写 url 以了解我正在处理哪个友好的 url 用于用户代理和其他东西 EDIT public class Gwan MethodImplAttribute MethodImplOptions InternalCall exte
  • C# 5 async/await 线程机制感觉不对?

    为什么让调用线程进入异步方法直到内部 等待 一旦调用异步方法就生成一个线程 这不是更干净吗 这样您就可以确定异步方法会立即返回 您不必担心在异步方法的早期阶段没有做任何昂贵的事情 我倾向于知道某个方法是否要在 我的 线程上执行代码 不管是堵
  • 在 omp 并行 for 循环中使用 unique_ptr 会导致 SEG.FAULT

    采取以下代码 include
  • C# 编译器不会优化不必要的强制转换

    前几天 在写答案的时候这个问题 https stackoverflow com questions 2208315 why is any slower than contains在这里 关于溢出 我对 C 编译器感到有点惊讶 它没有按照我的
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 搜索实体的所有字段

    我正在尝试在客户数据库上实现 多功能框 类型的搜索 其中单个查询应尝试匹配客户的任何属性 这是一些示例数据来说明我想要实现的目标 FirstName LastName PhoneNumber ZipCode Mary Jane 12345
  • 使用 GCC 生成可读的程序集?

    我想知道如何使用GCC http en wikipedia org wiki GNU Compiler Collection在我的 C 源文件中转储机器代码的助记符版本 这样我就可以看到我的代码被编译成什么 你可以使用 Java 来做到这一
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • 使用 jQuery 从 ASP.Net JSON 服务获取数据

    我正在尝试调用 Google 地图地理编码 API 从纬度 经度对中获取格式化的地址 然后将其记录到控制台 我正在尝试获取为给定位置返回的第一个 formatted address 项目 我很简单无法从 JSON 中提取该项目 我不知道为什
  • MySQL 中的 group_concat 性能问题

    我添加了一个group concat到一个查询并杀死了性能 添加之前和之后的解释计划是相同的 所以我对如何优化它感到困惑 这是查询的简化版本 SELECT curRow curRow 1 AS row number docID docTyp
  • 如何在SqlAlchemy中执行“左外连接”

    我需要执行这个查询 select field11 field12 from Table 1 t1 left outer join Table 2 t2 ON t2 tbl1 id t1 tbl1 id where t2 tbl2 id is
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc

随机推荐

  • 如何转储所有_G表内容

    我想转储 G 表 在 G 表中还有其他表也转储 内联表 我想要一个好的格式 我有一个例子 但使用它转储 G表有一些问题 function print table node to make output beautiful local fun
  • 将垂直滚动从 UIScrollView 转发到同级 UITableView

    我有一个具有以下层次结构的视图控制器 视图控制器 UIScrollView 可水平滚动 UITableView 可垂直滚动 我想转发我的垂直卷轴UIScrollView给兄弟姐妹UITableView 这样当用户向上滚动时UIScrollV
  • Kubernetes 集群上的粘性会话

    目前 我正在尝试在 Google Cloud 上创建一个 Kubernetes 集群 其中包含两个负载均衡器 一个用于后端 在 Spring boot 中 另一个用于前端 在 Angular 中 其中每个服务 负载均衡器 与 2 个副本 p
  • 使用 cURL 获取 HTTP 标头并保存到变量

    我用它来获取 XML 提要和 HTTP 标头 Initiate the curl session ch curl init Set the URL curl setopt ch CURLOPT URL url Allow the heade
  • 如何将 Chrome 开发者控制台停靠在左侧?

    我知道您可以单击垂直省略号按钮 然后选择停靠在底部 右侧或分离 但有人知道如何停靠在左侧吗 目前我必须分离然后手动调整大小和调整 这很烦人 Edit 我将保留这个问题 直到有人说服谷歌添加左对接 或者有人找出黑客 发现或构建扩展以使其正常工
  • 带有 Activity 和子 Fragment 的导航抽屉

    我有一个Activity A a 列表片段 P and 2 碎片 Q and R 当应用程序启动时 A已创建 加载P 根据用户点击的内容 将其替换为Q or R 现在通过引用this https developer android com
  • 如何突出显示 Ionic 列表中的选定项目

    我在屏幕上填充了一个项目列表 只想在列表视图中突出显示所选项目 请帮助
  • 关于不阻塞 GUI 线程的 MessageBox.Show 替换的建议?

    不久前 我遇到了一种情况 我们需要向用户显示消息框以获取通知 但我们无法使用 MessageBox Show 因为它会阻塞 GUI 线程 因此当对话框处于活动状态时 屏幕上的任何内容都不会更新 关于替代方案有什么建议吗 我当时编写了一个替代
  • Linux 和 Windows 上 html 中的 javascript 导入区分大小写

    我有以下内容 测试 html test js var Test test 问题是为什么它在 Windows 上工作而在 Linux 上不起作用 换句话说 为什么 linux 对于导入区分大小写 但 window 不区分 如何在 Linux
  • SQL Server数据通过网络发送时以什么格式序列化?

    我问这个问题的原因是因为我们计划将大量 几 GB 数据从 SQL Server 数据库读取到 Net 应用程序进行处理 我想知道为每条记录计算多少空间开销 以估计对网络流量的影响 例如 一条记录由 5 个整数组成 即 4 5 20 字节数据
  • Codeigniter result_array()何时返回单维或多维数组?

    返回 query gt result array 时有时我会得到多个像这样的单个数组 Array user id gt 32 username gt johnd cat id gt 7 Array user id gt 33 usernam
  • Action Script 中的 JSON:如何获取 JSON 对象的属性和值?

    假设我有这个 JSON 并且假设属性可能会改变 srcLocation pc filename name fileext jpg url 首先我想获取它们的所有属性 srcLocation 文件名等 并使用我得到的属性我想获得相应的值 我怎
  • 如何舍入到某个浮点精度?

    我认为这是一个简单的问题 我想 a 1 154648126486416 成为 a 1 154 and not a 1 15000000000 在不使用的情况下我该如何做到这一点format bank 你可以这样做 a floor a 100
  • WPF 装饰器有什么意义?

    我最近为我的公司开发了一个绘图组件 其中包含一个画布 您可以在上面通过单击并拖动来绘制某些形状 对于每个形状 我在其 AdornerLayer 上放置了两个装饰器 一个用于增加命中检测 基本上是一个会超出形状边界几个像素的透明矩形 另一个用
  • 什么是

    我对 Vue js 完全陌生 我想我对路由器如何处理以下内容有一些了解
  • 使用 dateutil 解析器从字符串中解析日期

    我正在尝试解析字符串格式的日期 u 2015 年 6 月 11 日 12 26 小时 美国标准时间 但是当我使用 dateutil 解析器来解析时出现错误 from dateutil parser import parse parse u
  • SQL:NOLOCK 导致查询速度变慢

    向查询添加 nolock 是否有任何原因会导致执行时间增加 UPDATE TargetTable SET col1 c1 RowCnt col2 c2 RowCnt from TargetTable tt join select col3
  • 为什么在快速排序中选择随机主元

    So choosing a pivot at random has O n2 running at worst case but when the pivot is chosen as the average of min value an
  • 如何在 JPopupMenu 中获得焦点

    我是一名经验丰富的 Java 程序员 但还是一名 Swing 新手 所以请耐心等待 我希望有一个具有键盘焦点的 JPopupWindow 我想响应箭头键 Escape 关闭菜单 和 Enter 调用该项目 我是否必须在菜单中添加一个 Key
  • 如何使用 MS Ole DB 提供程序在两个 FoxPro 数据库之间创建联接?

    问题 我正在使用现有的商业 MS Visual Foxpro 应用程序 并且需要使用 C 应用程序直接从数据库中提取数据 不幸的是 并非所有表都存储在同一个数据库中 一些记录存储在按年份细分的数据库中 如何使用单个联接创建针对这两个数据库的