Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >如何将表设计从数据库复制到另一个vb.net访问

如何将表设计从数据库复制到另一个vb.net访问
EN

Stack Overflow用户
提问于 2022-09-04 11:22:58
回答 1查看 42关注 0票数 0

目的是在更新应用程序和更新access数据库而不更改数据的情况下,因此只更新新表或新列,因此我希望将具有其结构的确切表复制到旧数据库vb.net和access数据库。

我尝试的是检测旧数据库和新数据库之间的差异,方法是在combobox1中获取唯一丢失的表,在combobox2中获取旧数据库中已在两个数据库中已经存在的准确表中的缺失列,并获取其数据类型。

因此,我希望复制整个表,然后只创建遗漏的列。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2022-09-04 12:34:00

没有一个内置的工具可以做到这一点。但是,更糟糕的是,在Access中没有“生成”更改脚本(比如使用SQL server)。

那么,你如何处理这个问题呢?使用ms access作为数据库的一些会计系统或商业程序是什么?

好吧,你必须在你的软件中建立一种“高级”系统。

这意味着两件事:

要向表中添加一个新列(例如),您永远不要打开access数据库,而是使用“添加”或“编写”代码来添加该字段。

事实上,我已经在现场部署了一个掌声-许多台式机。

所以,我有一个叫做升级的代码模块。每次我需要一个新的字段或者其他什么的时候,我都会编写代码来添加那个新的colum。

只要我总是把东西添加到代码模块中,我就没事了。(不要违反添加新字段、表或甚至增加某个字段长度的规则?-使用代码)。

在我编写了一些代码之后,这变得非常容易。实际上,我通常会剪切+粘贴以前的代码,以便将新列添加到表中。

然而,大约5年后,这个杂乱的代码模块中包含了800+代码行!

但是,我也意识到,大多数事情像添加一个新的列或什么?一遍又一遍的相同代码。

所以,我接下来做的是构建了一个“升级”表。看起来是这样的:

代码语言:javascript
代码运行次数:0
复制
 Version     action      SQL            RunCode
 2.5         AddTable    tblCustomers
 2.5         AddField    "sql here to add table"

等等

所以,我有一个版本号,然后我把它和上等表进行比较。我有"action",代码会简单地循环这个表,然后做任何事情。

因此,例如,要添加一个字段,可以使用access "DDL“命令(数据定义命令-大多数SQL系统都支持这一点,Access也是如此)。

所以,像这样说:

代码语言:javascript
代码运行次数:0
复制
  ' any new table code goes here:
  If lngVer < 1148 Then
     ' add event Invoice text option
     ExecuteSQLNR "ALTER TABLE dbo.Events ADD InvoiceText ntext NULL"
     ExecuteSQLNR "ALTER TABLE dbo.Events ADD HideEventDate bit NULL default 0"

或者,把一列长度从50增加到55。

代码语言:javascript
代码运行次数:0
复制
  db.Execute "ALTER TABLE tblGroupRemind ALTER COLUMN Anotes text(255)", dbFailOnError

如前所述,由于如此多的命令非常相似,所以我开始将这些信息放入表中,然后在循环中执行所需的升级。

换一张全新的桌子?嗯,我觉得代码太多了,所以我总是包含一个空白的空数据库,对于新的表,我会将它们放在那个upgrade.accDB表中,并将表从升级数据库“传输/复制”到真正的表中。这样,我可以非常容易地创建一个全新的表,并在Access设计器中创建,然后将该表添加/复制到"upgrade.accDB“数据库中。

如前所述?上面的想法和方法运作得相当好。

事实上,随着时间的推移,我发现在编写代码以添加新列的过程中,所遇到的麻烦更少了,或者任何需要打开ms-acces,然后打开表,然后由设计人员进行更改的东西。

不过,上面的大问题呢?

那么,您必须让所有用户至少升级到现有的模式,并且没有自动化的工具。

事实上,在我有任何自动化工具之前?我会打开便笺簿,如果我增加一些字段到某个桌子上?我只需简单地在便笺簿中键入这样和这样的表格中的新字段)。

然后,在客户网站上,我会打开他们的数据库,然后查看便笺簿文档,看看我要做的更改列表。(这就是我在开始自动化流程之前所做的事情--当然,“现场”或拥有客户数据库并不总是切实可行的。

但是,一旦我有了以上所有的工作?

然后,在开发期间,我会打开我的“升级”数据库,添加新的行和操作(新表、新列等)。

我甚至有一个列,它定义了在该命令之后运行的函数。我的意思是,当您添加新列或更改表中的某些内容时,通常需要复制数据,或者至少在进行更改后处理一些数据。

一旦你成功了?

然后,您就不会直接对数据表进行更改,而是使用您的“系统”。而且效果很好。

例如,客户可以打开一个较旧的数据文件,比如4或5年前的数据文件。将检测到应用程序版本号,然后升级代码将运行所有更新该数据库的版本。(我在启动时就自动完成了这个操作,所以他们根本不知道会发生这样的升级)。

所以,你只需要确保对你所做的每一个改变,你把这些代码放到你的升级系统中,你就完成了。

但是,对于现有的系统呢?您必须查看自上次部署以来所做的更改,并写出"ddl“命令( alter命令)。

没有自动化的方法来做到这一点。

作为FYI?

Visual中最好和更有价值的免费工具之一是SQL server比较实用程序。它不仅将自动检测和告知两个SQL服务器数据库之间的更改,而且还将为您升级。(非常好)

但是,这样的系统是不可访问的。实际上,这个用于SQL server的实用程序是非常有价值的,为此您可能会考虑从Access升级到SQL server。用那个功用?我可以在本地工作,向SQL数据库添加字段、列、表甚至存储过程。当我在现场(甚至通过VPN),然后我运行比较工具-它显示的变化,并有一个按钮来更新目标模式。

我不知道一个自动的“模式”检查器和访问更新器。

因此,我所建议的只有当您将这样的系统放在适当的位置,然后作为开发人员总是对升级系统进行模式更改,而不是直接在数据库中使用ms-access时,我的建议才能奏效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73602196

复制
相关文章
在Ubuntu中修改hosts配置
最近在使用ubuntu开发,难免需要配置hosts,下面介绍以下使用命令进行配置的操作流程。
程思扬
2022/01/11
20.5K0
在docker-compose.yml中定义命令修改hosts文件
因为使用了他人提供的docker镜像,想对其中某个网络操作修改一下,需要修改某域名指向的IP,这就要修改容器内的/etc/hosts文件。又觉得每次重创建docker后手动去修改很麻烦,所以想到在docker-compose.yml中定义该操作。
用户2135432
2023/10/21
7540
Kubernetes在pod中配置hosts解析域名
当 DNS 配置以及其它选项不合理的时候,通过向 Pod 的 /etc/hosts 文件中添加条目,可以在 Pod 级别覆盖对主机名的解析。在 1.7 版本后,用户可以通过 PodSpec 的 HostAliases 字段来添加这些自定义的条目。
聂伟星
2020/09/11
7.2K0
在Ubuntu 20.04中禁用motd欢迎消息
本篇文章重点讲解一下在Ubuntu 20.04中禁用motd欢迎消息具体方法,有需要的小伙伴可以参考一下。
会长君
2023/04/25
2.6K0
Android – 在Gradle中更改APK文件名
默认情况下,Android Studio中的Gradle构建命名为.apk文件app-release.apk。对应用程序build.gradle文件进行了一些小的更改,可以将.apk名称更改为<app name>-release-<version>.apk。 需要在app的目录下面修改build.gradle文件。 第一步是将project.archivesBaseName设置为您的应用程序名称。 android { compileSdkVersion 25 buildToolsVersio
code_horse
2018/07/02
2.9K0
在 .NET 应用程序中运行 JavaScript
前几天我在做一个副业,意识到我需要使用一些 JavaScript 功能。一想到要再次处理 Node.js 和 npm,我就完全放弃了,所以我决定研究一下在 .NET 应用程序中运行 JavaScript 的可能性。很疯狂吧?实际上,这出乎意料的简单。
独立观察员
2022/12/06
2.6K0
在 .NET 应用程序中运行 JavaScript
在vmware中安装Android
首先可以前往https://osdn.net/projects/android-x86/下载自己喜欢的镜像,这里以安卓9的镜像为例
阿龙w
2022/12/25
2.7K0
在vmware中安装Android
Android模拟器修改hosts文件详解
在开发中遇到这样需求,需要在hosts文件中将某个网址域名与其对应的IP地址建立一个关联,比如关联这样一个ip:
全栈程序员站长
2022/11/01
4.1K0
Android模拟器修改hosts文件详解
在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查。我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数据费时费电;二是流量贵如金那。我个人比较推荐的做法是使用Java或PHP等开发接口或者编写WebService进行数据库的增删该查,然后Android调用接口或者WebService进行数据的交互。本文就给大家讲解在Android中如何调用远程服务器端提供的WebService。 既然是调用WebService
欢醉
2018/01/22
2.3K0
【DB笔试面试727】在Oracle中,如何禁用HAIP?
说明,ora.cluster_interconnect.haip的ENABLED属性的原始值为1:
AiDBA宝典
2020/01/20
1.8K0
在Android中调用WebService
某些情况下我们可能需要与Mysql或者Oracle数据库进行数据交互,有些朋友的第一反应就是直接在Android中加载驱动然后进行数据的增删改查。我个人不推荐这种做法,一是手机毕竟不是电脑,操作大量数据费时费电;二是流量贵如金那。我个人比较推荐的做法是使用Java或PHP等开发接口或者编写WebService进行数据库的增删该查,然后Android调用接口或者WebService进行数据的交互。本文就给大家讲解在Android中如何调用远程服务器端提供的WebService。 既然是调用WebService
全栈程序员站长
2022/07/05
1.9K0
[译] 在 Android Instant App(安卓即时应用程序)中启用 ProGuard (混淆)
原文地址:Enabling ProGuard in an Android Instant App 原文作者:Wojtek Kaliciński 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:JayZhaoBoy 校对者:hanliuxin5 Instant Apps(即时应用)和 4 MB 字节的限制 把一个已经存在的应用程序转换成 Android Instant App(安卓即时应用程序)是很有挑战性的,但对于模块及结构化你的项目而言却是一个很好的练习,更
Android 开发者
2018/05/31
2.6K0
Hosts文件修改
有时访问某些国外网站很卡(不包括无法访问的网站),很大的原因是这些网站的 CDN 的域名遭到 DNS 污染了。这时就可以选择直接访问源网站 IP ,绕过 DNS 解析,即通过修改主机 hosts 文件的方式,将域名和 IP 的对应关系直接记录下来,来加速对这些网站的访问。
hotarugali
2022/03/01
6.1K0
mac 技术篇-修改hosts文件,hosts文件位置
hosts 文件就在 /etc/hosts 路径里,我们直接是无法编辑的,需要通过下面的方法来修改我们的 hosts 文件。
小蓝枣
2020/09/23
43.7K0
ssh 协议中known_hosts文件
A通过ssh首次连接到B,B会将公钥1(host key)传递给A,A将公钥1存入known_hosts文件中,以后A再连接B时,B依然会传递给A一个公钥2,OpenSSH会核对公钥,通过对比公钥1与公钥2 是否相同来进行简单的验证,如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。。
用户8418197
2022/02/14
3.2K0
在IPA中重签名iOS应用程序
当我们在对iOS应用程序执行黑盒安全测试时,我们一般只能从AppStore来访问和获取iOS应用程序。但是在大多数情况下,客户都会给我们提供一个IPA文件。在黑盒测试过程中,我们无法访问目标应用的源代码,因此通过Xcode将其部署到设备并进行测试,几乎是不可能的。但是有一种可行的解决方案,即使用我们手头上的配置文件来重新启动应用程序,并将其部署到我们的测试设备上。
FB客服
2020/03/10
2.3K0
在Flutter中制作指纹认证应用程序
现在许多手机都配备了指纹传感器,这使得用户登录和本地身份验证更容易,而且比使用密码更安全。
徐建国
2021/07/31
2.5K0
hosts文件是什么?hosts文件有什么作用?
对网络比较熟悉的朋友应该都知道hosts文件,在windows系统中和手机中,hosts文件有非常多的作用,但是具体来说有哪些作用呢?很多人却并不清楚,下面来为大家具体介绍一下hosts文件是什么、hosts文件有什么作用,希望能够为各位用户提供更多有关hosts文件的经验。
用户8715145
2021/07/02
5.6K0
Android 判断是否在通话中
转载请以链接形式标明出处: 本文出自:103style的博客 最后的判断代码: /** * 是否正在电话通话中 */ private boolean phoneIsInUse() { TelephonyManager mTelephonyManager = (TelephonyManager) activity.getSystemService(Context.TELEPHONY_SERVICE); int state = mTelephonyManager.getCallSt
103style
2022/12/19
1.3K0
点击加载更多

相似问题

关于dlib::frontal_face_detector优化

15

再现dlib frontal_face_detector()训练

116

使用python dlib时导入错误

11

无法使用全局安装的Dlib编译Dlib示例

10

使用pip安装Dlib时出错

60
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档