Delphi 用dbnavigator和dbgrid链接以后,使用dbnavigator控件的删除时会使程序崩溃,该如何处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi 用dbnavigator和dbgrid链接以后,使用dbnavigator控件的删除时会使程序崩溃,该如何处理相关的知识,希望对你有一定的参考价值。

有人告诉我加一个POST就可以了,可是不知道该怎么增加!由于刚接触Delphi求高手指教!

delete不需要加Post。
删除前要判断表中是否有数据
if tb.RecordCount>0 then
tb.delete;
如果数据集使用的dbexpress中的TSimpleDataSet,或者是TClientDataSet, 要提交时需要添加
tb.applyUpdates(-1);追问

可是无论是删除 插入 还是更新 全都会崩溃,跳出来的都是上面的那个截图。DBNavigator上的+可以出现新插入的空的一行,但是把数据输入到DBGrid的窗口以后,按那个勾 程序也会崩溃,按-就直接崩溃了..

追答

1.首先要确认一下Delphi能否正常使用?
2.确认您的表在数据库中是否与其它表有级联删除和级联更新的关系?如果有,先把级联关系干掉再试试看。
3.看看数据表中是否有不允许为空的字段?编辑时要记得把值填上,否则提交报错
4.排查操作顺序:
建一个新的工程,什么控件不加,直接能够运行,证明delphi环境问题不大。
检查上述2、3项后,直接加入数据库连接组件,比如adotable,原地连接,确认一下有无问题。
如果上述所有项全部检查无误,把dbnavigater,扔到一边,加两个按钮,一个按钮增加记录,一个按钮保存记录,看看再报什么错?

dbnavigater应该直接连接DataSource罢?

参考技术A 可能是你的表中有两条记录字段值全部重复的记录。表中设置一个主键,避免输入记录有全部字段重复就好了。
另外,你需要把你数据库中现有的的重复记录删除。
一般情况下,你删除一个,和这个记录重复的全部记录就都会被删除,但会报这样一个错误。追问

确定没有重复的记录,不过无论是删除插入还是更新都会是程序崩溃

追答

想起来了,表里一定要设置一个主键才行。

参考技术B 你用的是第三方的数据连接吗?有的第三方数据集控件是需要设置主键的。

如何为 Jetbrains PHPStorm 和 WebStorm 配置 DB Navigator

【中文标题】如何为 Jetbrains PHPStorm 和 WebStorm 配置 DB Navigator【英文标题】:How to configure DB Navigator for Jetbrains PHPStorm and WebStorm 【发布时间】:2011-11-18 01:59:52 【问题描述】:

我需要在 Mac(雪豹)中为 PHPStorm 的 DB Navigator 插件设置连接。它要求我提供实现 java.sql.Driver 类的库的路径。我只是不知道它在哪里。有什么建议吗?

【问题讨论】:

【参考方案1】:

说明

    通过菜单栏安装 DB Navigator 插件 >> 设置 >> 插件 >> 可用标签 从这里下载 MySQL jdbc 连接器 >> http://www.mysql.com/downloads/connector/j/ 将 MySQL jdbc 连接器解压到您选择的目录 重启 PHPStorm / WebStorm 通过菜单栏添加 DB >> DB Navigator >> Settings >> Connection-Tab >> Plus-Button 输入您的连接参数(有关本地 MySQL 数据库的可能条目,请参见下文)

本地 MySQL 数据库的可能参数

名称:选择的名称(本地主机) 描述:选择的附加信息(数据库名称) 驱动程序库:.jar 文件的路径(即步骤 3 中使用的目录) 驱动程序:首选驱动程序(很可能标准驱动程序会这样做>>com.mysql.jdbc.Driver) URL:带有 jdbc 引用的连接 URL(例如:jdbc:mysql://localhost:3306/) 用户名:选择的 db 用户名 (root) 密码:选择的 db 密码(root)

【讨论】:

在我意识到我的服务器没有监听任何可以从外部互联网访问的套接字之前,我很难弄清楚这一点。 我从第 4 步中丢失了你,我从插件中安装了 db navigator,但是如何打开,我的意思是从哪里打开,有什么快捷方式吗? @SyedHaiderHassan 安装 DB Navigator 插件并重启 PHPStorm 后,WindowHelp 之间应该有一个菜单 DB Navigator i> 在菜单栏上 @Rocoo:谢谢,重新启动程序已添加为说明的第 4 步 谢谢,这个答案对我帮助很大。感谢您贡献 Bruiser。【参考方案2】:

清楚地查看这张图片。希望对你有一点帮助。

    此图下方有驱动文件丢失错误,点击此处会为您下载所需的驱动。

    数据库:您的数据库名称。

    用户:您的数据库用户名和密码。 然后点击测试连接,希望能给你成功的消息。

【讨论】:

【参考方案3】:

下载 mysql-connector-java-5.1.18-bin.jar 文件并为该 jar 文件设置驱动程序库路径。

然后Intellij idea会自动加载com.mysql.jdbc.Driver的Driver。

然后将 URL 设置为 jdbc:mysql://localhost:3306/

最后输入有效的用户名和密码。

【讨论】:

【参考方案4】:

在此处安装解压的 MySQL 连接器 J 文件 > c:\Program Files\MySQL\MySQL 连接器 J

需要我们> mysql-connector-java-5.1.28-bin.jar

复制到 > c:\Documents and Settings[YOUR_COMP].WebIde70\config\jdbc-drivers\

在 MySQL 数据库连接中选择 驱动程序 >> MySQL >> 点击 PLUS 并选择

> c:\Documents and Settings[YOUR_COMP]\.WebIde70\config\jdbc-drivers\mysql-connector-java-5.1.28-bin.jar

还需要开启Database Support插件! (设置>>IDE设置>>插件)

附言实际上对于 PHPStorm 7

【讨论】:

【参考方案5】:

只要确保您在主机名之前添加了 jdbc:mysql://。这解决了我的问题。

jdbc:mysql://my-db-url.com

【讨论】:

这也解决了“驱动程序拒绝为此配置创建连接。没有提供失败信息”错误。【参考方案6】:

首先,您不需要安装第三方 DB Navigator 插件,因为 PhpStorm 中提供了开箱即用的数据库功能,请参阅Tools | Data Sources.

添加新的数据源,允许选择数据库和驱动,并自动下载所需的数据库驱动。

【讨论】:

谢谢你,我找到了它,虽然我没有看到要探索的数据库,但至少我做了连接。再次感谢,我去看看。

以上是关于Delphi 用dbnavigator和dbgrid链接以后,使用dbnavigator控件的删除时会使程序崩溃,该如何处理的主要内容,如果未能解决你的问题,请参考以下文章

请教关于delphi中dbnavigator控件的用法!

delphi里关于DBgrid,DBNavigator,DBEdit的问题

delphi中的dbgrid数据操作

delphi dbgrid 修改、更新、删除

delphi中 datasetfirst:tdatasetfrist是啥

vc中有dbnavigator控件吗