实时错误’-2147217887‘多步OLB DB 操作产生错误。如果可能,请检查OLE DB状态值
目录
- 背景
- 问题
- 问题分析
- 问题解决
- 错误解决与定位技巧
- 总结
背景
仍旧是学生信息管理系统的问题,当时做的时候没发现这么多问题呢,只能说明一件事,做的时候没有站在用户的角度考虑需求,设置了什么内容,就按照设置好的去测试,这就是为什么要有专门的测试。在添加和修改用户的时候都报了这个错误

问题
问题分析
这个错误表示在使用 OLE DB 进行数据库操作时出现了问题。
先说说OLE DB是什么,报错总得知道里面的概念是什么
OLE DB(Object Linking and Embedding Database)是一种面向对象的数据库访问技术,它是微软公司提出的一种标准数据访问接口。它可以让应用程序通过一套通用的接口来访问各种数据源,例如关系型数据库、文件、文本等。OLE DB 技术建立在 COM(Component Object Model)技术之上,它使用面向对象的编程模式,将数据源抽象为一组对象和接口,提供了一种灵活的方式来访问数据。使用 OLE DB,应用程序无需关心具体的数据源类型,只需要和数据源进行统一的交互,从而简化了开发。
也许你对 OLE DB不清楚是什么,一定听过ADO(ActiveX Data Objects),这个我有专门的博客讲过: ADO实战指南。
ADO建立在OLE DB之上,提供了更简单的编程模型和更易于使用的API。ADO将OLE DB的复杂性隐藏在后面,并提供了一种面向对象的编程模型,让我们能够更方便地访问数据。因此,可以说ADO是OLE DB的一个抽象层,可以帮助开发人员更轻松地使用OLE DB提供的功能。
再来说说这个错误,应该从哪几方面去考虑:
-
检查数据库连接是否正确
确保数据库连接字符串设置正确(上一篇博客: ODBC配置数据源有讲到相关内容),包括数据库名称、登录名和密码等信息。同时确保数据库服务器正在运行,并且有足够的权限进行访问。 -
检查 SQL 语句是否正确
如果使用 SQL 语句执行数据库操作,需要确保 SQL 语句的语法正确,包括 SELECT、INSERT、UPDATE、DELETE 等操作语句。可以通过在 SQL Server Management Studio 中测试相同的 SQL 语句来验证语法是否正确。(这点真的非常好用) -
确认表名和列名是否正确
如果使用表名和列名进行数据库操作,需要确保表名和列名正确无误,包括大小写、空格等问题。 -
检查数据类型是否匹配
如果使用 ADO/OLE DB 进行数据库操作,需要确保数据类型匹配,例如在插入数据时,要确保插入的数据类型与目标列的数据类型匹配。 -
代码逻辑错误
如果以上方法都无法解决问题,需要审查代码,确保没有其他逻辑错误,例如变量名拼写错误、数组越界等问题。
问题解决
调试代码,定位都字段这里,并且按照上面的方法逐步排查,发现最可能错的应该就在字段,这里需要注意的是,当代码变黄色,不一定就是本行代码出错,可能错误在这个过程中或者之上。

这个字段对应的数据库中的电话号码字段

进到表设计里,发现数据类型char的位数写的是10

问题就出在这里了:
明眼人一看就知道我们的手机号是11位,可是这里居然设置了10位,接下来直接将char(10)改为char(11)就好了。
当然也可以使用sql语句
ALTER TABLE student_Info ALTER COLUMN tele_Number CHAR(11)
如果保存不了(SQL server 2014就保存不了,后面高版本就直接保存了),就使用下面的步骤
打开数据库-----工具栏-----选项----设计器(左侧)----把”阻止保存要求重新创建表的更改“勾掉。

至此,问题解决了。
错误解决与定位技巧
vb报错信息通常是以运行时错误(Runtime Error)的形式呈现。这些错误信息总是说的那么让人不知所云,不能直接理解,虽然,但是,我们是可以通过一些调试技巧来定位和解决错误。比如:
-
错误编号和错误描述:当运行时错误发生时,VB会提供一个错误编号和错误描述。可以通过查阅相关文档或搜索引擎来获取更多关于特定错误的详细信息,以便理解错误的原因和解决方法。
-
调试器:VB6内置了一个强大的调试器,可以用来逐步执行代码并查看变量的值、检查语句的执行情况等。可以通过设置断点(Breakpoints)来暂停代码的执行,以便逐行检查代码并观察错误发生的位置。
-
错误处理:使用错误处理机制(Error Handling)可以帮助捕获和处理运行时错误。通过使用On Error Resume Next和On Error GoTo语句,可以在代码中指定出错时的处理逻辑,例如记录错误日志、显示错误消息等。
-
输出调试信息:通过在代码中插入一些输出语句,如使用Debug.Print将变量的值输出到调试窗口,可以帮助跟踪代码的执行过程,同时也能够捕获一些隐藏的错误。
-
分而治之:如果无法确定错误发生的具体位置,可以将代码分成多个模块或函数进行测试。这样可以逐渐缩小错误的范围,并最终确定引起错误的代码段。
-
日志记录:在关键的代码部分插入日志记录语句,将关键变量的值输出到日志文件中。当出现错误时,可以查看日志文件以了解错误发生时的上下文信息。
总结
遇到的错误多了,慢慢就知道怎么解决了,但是不要碰,更不要瞎改,要根据错误信息,按照逻辑去分析。另外写代码要站在用户的角度去分析需求,也要站在用户的角度去做测试,在整个开发过程中,始终将用户放在首位,对用户需求进行周密的分析和测试,是确保代码质量和用户满意度的关键所在。
相关文章:
实时错误’-2147217887‘多步OLB DB 操作产生错误。如果可能,请检查OLE DB状态值
目录 背景问题问题分析问题解决 错误解决与定位技巧总结 背景 仍旧是学生信息管理系统的问题,当时做的时候没发现这么多问题呢,只能说明一件事,做的时候没有站在用户的角度考虑需求,设置了什么内容,就按照设置好的去测…...
九、ffmpeg命令转封装
开了几天小差,今天继续学习ffmpeg。 准备测试使用的视频,并查看其信息 # 查看视频信息。使用Mediainfo也可以 ffprobe test.mp4 视频格式的信息如下。 保持编码格式:ffmpeg -i test.mp4 -vcodec copy -acodec copy test_copy.tsffmpeg -i…...
数字逻辑电路基础-时序逻辑电路之锁存器
文章目录 一、锁存器简介二、verilog源码三、综合及仿真结果 一、锁存器简介 本文介绍数字逻辑电路中一种常用的基础时序逻辑电路-锁存,顾名思义,它的功能就是将输入在控制信号有效时透明传输到输出端,当控制信号无效时,输出值保…...
Python---global关键字---设置全局变量
global 英 /ˈɡləʊb(ə)l/ adj. 全球的,全世界的;全面的,整体的;(计算机)全局的;球形的 需求:如果有一个数据,在函数A和函数B中都要使用,该怎么办&…...
bug场景记录
项目场景: mapper.xml文件中sql语句执行失败,显示输入的参数数量不对 问题描述 <select id"page" resultType"com.sky.entity.Employee">select * from employee<where><if test"name ! null and name !"…...
【云备份】第三方库的认识与使用
文章目录 json库粗略认识详细认识writer 类reader类jsoncpp序列化实现jsoncpp反序列化实现 bundle文件压缩库简单认识bundle库实现文件压缩bundle库实现文件解压缩 httplib库Request类Response类Server类Client类 json库 粗略认识 json是一种数据交换格式,采用完全…...
6.2.SDP协议
那今天呢?我们来介绍一下sdp协议,那实际上呢?sdp协议非常的简单。我们如果拿到一个stp的文档去看的话,那你要分阅里边的所有的内容会觉得很枯燥,但实际上呢,如果我们按照这张图所展示的结构去看stp的话。你…...
[汇编实操]DOSBox工具安装——Ubuntu18.04系统
一、下载&安装 sudo apt install -y dosbox 二、启动 dosbox 三、C盘挂载 将上述文件下载放在任意路径,将DEBUG目录映射为虚拟C盘 MASM.EXE 是用来编译的,LINK.EXE 用来链接,这俩是必须的。 执行如下命令: mount c /m…...
前端 HTML 的 DOM 事件相关知识有哪些?
HTML 的 DOM 事件是指在网页上发生的各种事件,如点击、鼠标移动、键盘输入等。 通过 JavaScript 脚本可以对这些事件进行监听和处理,以实现交互效果。以下是一些常见的 DOM 事件及其相关知识点: 1、click:点击事件,在…...
Mac自带的看图如何连续查看多张图片
一、问题 mac看访达里的图片时,双击打开一张图片,然后按上下左右键都没法切换到另外的图片。而且也没找到像window一样单击缩略图可以看到预览图。其实是自己不懂得怎么使用,哈哈哈😂 二、方法 2.1、图标方式 可以看到缩略图&a…...
HTTP四大参数类型及请求参数的方式和如何接收
HTTP 请求中4大参数类型和接收方法。 1、请求头参数head 请求头参数顾名思义,是存放在请求头中发送给服务器的参数,服务器通过解析请求头获取参数内容。通常会存放本次请求的基本设置,以帮助服务器理解并解析本次请求的body体。 参数形式如…...
【C++11】default、delete与Noncopyable
C11 oop中的default、delete与Noncopyable default 在C11标准中,可以使用default关键字来显式地声明默认的构造函数和析构函数。 使用default关键字可以用来显式声明默认的构造函数和析构函数。这样做可以让编译器自动生成默认实现 –>->->关于构造函数…...
【心得】基于flask的SSTI个人笔记
目录 计算PIN码 例题1 SSTI的引用链 例题2 SSTI利用条件: 渲染字符串可控,也就说模板的内容可控 我们通过模板 语法 {{ xxx }}相当于变相的执行了服务器上的python代码 利用render_template_string函数参数可控,或者部分可控 render_…...
ubuntu20.04 nginx 部署静态网页
1、安装nginx Ubuntu环境下安装部署Nginx(有网)_ubuntu 安装nginx_荒Huang的博客-CSDN博客 2、压缩并上传文件到服务器指定位置(unzip命令),修改nginx配置文件,指定root目录为文件的目录,index 值为指定的html文件 …...
vue脚手架的基础搭建过程
MVVM架构 Vue框架底层设计遵循MVVM架构。 Model层(M)模型层(业务逻辑层) View层(V)视图层 主管UI ViewModel层(VM) 将项目代码划分清晰的层次结构后,非常有利于后期代…...
函数与数组
一.函数 1、函数的作用 定义较为复杂的但是需要重复使用的内容,以便再次使用,可以直接调用,节约时间,提高效率。 语句块定义成函数约等于别名,定义函数,再引用函数。 封装的可重复利用的具有特定功能的…...
2023年【安全生产监管人员】考试题及安全生产监管人员找解析
题库来源:安全生产模拟考试一点通公众号小程序 安全生产监管人员考试题参考答案及安全生产监管人员考试试题解析是安全生产模拟考试一点通题库老师及安全生产监管人员操作证已考过的学员汇总,相对有效帮助安全生产监管人员找解析学员顺利通过考试。 1、…...
K8S(一)
一、kubernetes 概述 1、kubernetes 基本介绍 kubernetes,简称 K8s,是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes 的目标是让部署容器化的 应用简单并且高效…...
Linux快速显示文件行号并跳转
有时候,想要在线上直接查看日志文件,搜索到关键词后,如果一直按n找下去,很麻烦,我们可以先显示出行号,确定好我们要找内容对应的行号,直接跳转过去。 esc进入命令模式,输入:set nu命…...
异步爬取+多线程+redis构建一个运转丝滑且免费http-ip代理池 (二)
继上一章: CSDN 本次需要做的是进行有效ip的验证! 我们知道,从网页上爬取上千上万个ip之后,因为是免费的代理,所以,对这上千上万个ip进行验证有效性就需要考虑效率上的问题了; 而验证ip有效性的唯一办法,就是通过对网络发起请求;如果state200,就是有效,否则就是无效; 而上…...
ChatTTS高性能调优:多线程并发下的响应速度优化
ChatTTS高性能调优:多线程并发下的响应速度优化 1. 项目背景与性能挑战 ChatTTS作为目前开源界最逼真的语音合成模型之一,在中文对话场景中表现出色。其独特的停顿、换气声和笑声生成能力,让合成语音听起来完全不像机器人。然而,…...
RVC语音转换实战指南:8个核心问题的高效解决方案
RVC语音转换实战指南:8个核心问题的高效解决方案 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-W…...
量子联邦学习在ADAS中的创新应用与实战解析
1. 量子联邦学习在ADAS中的创新应用在高级驾驶辅助系统(ADAS)领域,数据隐私和实时性需求正推动着分布式学习范式的革新。传统集中式机器学习需要将各车辆的传感器数据上传至中央服务器,这在实践中面临两大困境:一是涉及…...
跨平台技术
Flutter for OpenHarmony跨平台技术...
全网最全网安合规资源站汇总,从入门到挖洞收藏这篇就够
我们学习网络安全,很多学习路线都有提到多逛论坛,阅读他人的技术分析帖,学习其挖洞思路和技巧。但是往往对于初学者来说,不知道去哪里寻找技术分析帖,也不知道网络安全有哪些相关论坛或网站,所以在这里给大…...
PageObject模式实战案例
自动化测试神器PageObject:代码减少50%,维护成本降70% 01 自动化测试的噩梦:改一个元素,全局崩溃 “登录页面改了个按钮ID,跑了3年的脚本全挂了。” 这是某测试团队的真实故事。一个小改动,200测试用例全部…...
从反爬角度:Playwright CDP 模式、Playwright 传统模式与 DrissionPage 的比较
引言:反爬检测的战场升级在当今的Web数据采集领域,反爬虫技术已经从简单的请求频率限制发展到复杂的浏览器指纹识别和行为分析。自动化工具的选择直接决定了爬虫项目的成败。本文将从反爬检测的核心角度,深入分析三种主流自动化框架ÿ…...
【仅限前500名】VS Code MCP生态白皮书(含未公开API文档+3大厂商私有扩展协议逆向表)
更多请点击: https://intelliparadigm.com 第一章:VS Code MCP插件生态概览与白皮书价值定位 MCP(Model Communication Protocol)是微软联合开源社区推出的标准化协议,旨在统一大模型能力在编辑器中的调用方式。VS Co…...
DeepSeek-V4横空出世!AI巨头争相接入,国产大模型引领算力浪潮!
百度正式发布DeepSeek-V4大模型并开源,分为Pro和Flash两个版本。寒武纪、AccioWork、摩尔线程等巨头纷纷完成适配,展现国产大模型强大能力。DeepSeek-V4在上下文处理、推理性能等方面领先,预计将推动国产算力发展,券商看好国产算力…...
拯救损坏视频的终极方案:用Untrunc轻松修复MP4/MOV文件
拯救损坏视频的终极方案:用Untrunc轻松修复MP4/MOV文件 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否经历过这样的绝望时刻?精心拍摄…...
