Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 未定义Firebird CHARACTER SET UTF8大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图连接到从 Linux客户端在Windows中运行的firebird数据库,并且当试图附加数据库时,我收到以下错误

@H_301_11@bad parameters on attach or create database,CHARACTER SET UTF8 is not defined

我在谷歌搜索搜索了答案,但似乎无法找到解决方案.

有关如何从客户端克服此问题的任何建议,还是需要使用UTF8支持重建数据库

客户端我使用Node-js和node-firebird模块,服务器端引擎版本是2.5,ODS版本是11.2

@H_301_11@function dbConnect(cb){ fb.attach({ host: '192.168.42.233',database: 'gi',user: 'SYSDBA',password: 'xxxxx' },function(err,db){ if (err) console.log(err.messagE); else cb(db); }) }

解决方法

Harriv的评论促使我测试我的想法,这可能是由于RDB $CHARACTER_SETS中缺少条目引起的.如果我从这个系统表中手动删除UTF8,当我尝试连接UTF8时会出现同样的错误

@H_301_11@sql message : -924 Connection error ENGIne Code : 335544325 ENGIne message : bad parameters on attach or create database CHARACTER SET UTF8 is not defined

解决方案是备份数据库并再次还原.这将重新创建RDB $CHARACTER_SETS系统表以再次包含UTF8.

请注意,如果RDB $CHARACTER_SETS中缺少UTF8,这只会解决您的问题.如果确实如此,你应该问问自己为什么它首先丢失了.也许DBA或其他开发人员从RDB $CHARACTER_SETS中删除了条目,如果是这样,那么找出为什么这样做可能是一个好主意.

例如:也许数据库使用NONE作为认字符集(并且对于每一列),这是一种确保人们只通过删除所有其他选项来连接“正确”字符集的方法(普通Firebird 2.5数据库包含52个条目) RDB $CHARACTER_SETS).如果是这种情况,请确保在连接UTF8之前解决此问题,否则您可能会因错误的音译而遇到某种形式的数据损坏(读取或写入时).

解决此问题的方法是使用正确的认字符集(以及列)创建一个数据库,并将数据从旧数据库泵入新数据库(确保使用适当的字符集完成读取和写入).之后,Firebird可以处理数据库(或列)字符集和连接字符集之间的音译(除了使用NONE作为连接字符集连接的应用程序之外).

大佬总结

以上是大佬教程为你收集整理的node.js – 未定义Firebird CHARACTER SET UTF8全部内容,希望文章能够帮你解决node.js – 未定义Firebird CHARACTER SET UTF8所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。