Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

[BUG] Invalid Descriptor Index - SQL Server 2016

未关闭
#416 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
45/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
领域
backend, database

调研方向

从 issue 中的复现脚本和附带的 SQL.LOG 开始,使用报告中的 Node.js 和 ODBC 驱动程序版本在 SQL Server 2016 上运行查询。按照 README 中的说明使用 ODBC 跟踪,比较 node-odbc 2.4.7 与 2.4.8/2.4.9 之间的行为。查询返回所有列且没有 Invalid Descriptor Index 错误即表示完成。

由索引模型根据 Issue 内容生成。

描述

Describe your system

  • odbc Package Version:
  • ODBC Driver: ODBC Driver 18 for SQL Server
  • Database Name: SQL Server
  • Database Version: 2016
  • Database OS: Windows 10 Pro
  • Node.js Version: 20.18.0
  • Node.js OS: Windows 10 Pro

Describe the bug
When the script executes the query 'SELECT * FROM Enterprise32.PrintingCenterUSA.AdditionalItemInfo WHERE JobNumber='950716' AND ItemNumber=1' gets executed I receive the error 'Invalid Descriptor Index' with package versions 2.4.8 and 2.4.9

When I select only one column, no error occurs. If I select all columns but specify each in the query it still triggers an error.

However when I use the version 2.4.7 the query works.

Expected behavior
No error should be triggered and the data should be returned as usual

To Reproduce

Create a table with the columns below and fill in the data below

Columns:

[{"name":"JobNumber","dataType":12,"columnSize":128,"decimalDigits":0,"nullable":false},{"name":"ItemNumber","dataType":4,"columnSize":10,"decimalDigits":0,"nullable":false},{"name":"Buyout","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":false},{"name":"BuyoutVendor","dataType":12,"columnSize":128,"decimalDigits":0,"nullable":true},{"name":"BuyoutPrice","dataType":3,"columnSize":19,"decimalDigits":4,"nullable":true},{"name":"ComponentNumbers","dataType":12,"columnSize":128,"decimalDigits":0,"nullable":true},{"name":"HasPO","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":false},{"name":"POSent","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":false},{"name":"POCreatedDate","dataType":93,"columnSize":27,"decimalDigits":7,"nullable":true},{"name":"POSentDate","dataType":93,"columnSize":27,"decimalDigits":7,"nullable":true},{"name":"IsDesignTool","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":false},{"name":"BuyoutVendorComments","dataType":12,"columnSize":0,"decimalDigits":0,"nullable":true},{"name":"PrintAsIs","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":false},{"name":"PrintAsIsNote","dataType":-1,"columnSize":2147483647,"decimalDigits":0,"nullable":true},{"name":"BuyoutVendorBridgeSuccess","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":true},{"name":"DesignID","dataType":12,"columnSize":255,"decimalDigits":0,"nullable":true},{"name":"MailingComponentNumber","dataType":4,"columnSize":10,"decimalDigits":0,"nullable":true},{"name":"PostageComponentNumber","dataType":4,"columnSize":10,"decimalDigits":0,"nullable":true},{"name":"WebsiteOrderItemID","dataType":4,"columnSize":10,"decimalDigits":0,"nullable":true},{"name":"DustJacketComponentNumber","dataType":4,"columnSize":10,"decimalDigits":0,"nullable":true},{"name":"IsRequestingCleanPDFGeneration","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":false},{"name":"DiscountPrice","dataType":3,"columnSize":19,"decimalDigits":4,"nullable":true},{"name":"WebsiteStatus","dataType":12,"columnSize":255,"decimalDigits":0,"nullable":true},{"name":"IsCustomSize","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":true},{"name":"WHF3291ProductName","dataType":12,"columnSize":50,"decimalDigits":0,"nullable":true},{"name":"MainComponentNumber","dataType":5,"columnSize":5,"decimalDigits":0,"nullable":true},{"name":"WHF3396ProductPage","dataType":12,"columnSize":50,"decimalDigits":0,"nullable":true},{"name":"ForeignPostageComponentNumber","dataType":4,"columnSize":10,"decimalDigits":0,"nullable":true},{"name":"IsHardProof","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":true},{"name":"HardCopyHasPO","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":true},{"name":"HardCopyPosent","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":true},{"name":"HardCopyPosentDate","dataType":93,"columnSize":23,"decimalDigits":3,"nullable":true},{"name":"BuyoutStatus","dataType":12,"columnSize":255,"decimalDigits":0,"nullable":true},{"name":"Binding","dataType":12,"columnSize":255,"decimalDigits":0,"nullable":true},{"name":"EPM","dataType":4,"columnSize":10,"decimalDigits":0,"nullable":true},{"name":"Thumbnail","dataType":12,"columnSize":0,"decimalDigits":0,"nullable":true},{"name":"ShrinkWrap","dataType":12,"columnSize":50,"decimalDigits":0,"nullable":true},{"name":"IsODT","dataType":-7,"columnSize":1,"decimalDigits":0,"nullable":true}]

Data:

[{"JobNumber":"950716","ItemNumber":1,"Buyout":"0","BuyoutVendor":"","BuyoutPrice":0,"ComponentNumbers":"1","HasPO":"0","POSent":"0","POCreatedDate":null,"POSentDate":null,"IsDesignTool":"0","BuyoutVendorComments":null,"PrintAsIs":"0","PrintAsIsNote":"","BuyoutVendorBridgeSuccess":null,"DesignID":"","MailingComponentNumber":0,"PostageComponentNumber":0,"WebsiteOrderItemID":902783,"DustJacketComponentNumber":0,"IsRequestingCleanPDFGeneration":"0","DiscountPrice":0,"WebsiteStatus":"","IsCustomSize":"0","WHF3291ProductName":"Booklet","MainComponentNumber":1,"WHF3396ProductPage":"Booklet","ForeignPostageComponentNumber":0,"IsHardProof":null,"HardCopyHasPO":null,"HardCopyPosent":null,"HardCopyPosentDate":null,"BuyoutStatus":null,"Binding":"Saddle Stitch","EPM":null,"Thumbnail":null,"ShrinkWrap":null,"IsODT":null}]

Code

SQL.LOG

const odbc = require('odbc');

async function runQuery() {
try {
const connection = await odbc.connect({
connectionString: 'DRIVER={ODBC Driver 17 for SQL Server};SERVER=BHARATEPMSTEST;DATABASE=Enterprise32;UID=sa;PWD=1z4fLB5Q68;',
connectionTimeout: 10,
loginTimeout: 10,
});
const result = await connection.query("SELECT * FROM Enterprise32.PrintingCenterUSA.AdditionalItemInfo WHERE JobNumber='950716' AND ItemNumber=1");
console.log(JSON.stringify(result.columns));
await connection.close();
} catch (err) {
console.error('ODBC Error:', JSON.stringify(err));
}
}

runQuery();

主要语言
JavaScript
星标
159
派生
92
平均合并
5 小时 59 分钟
30 天内合并 PR
3

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

IBM/node-odbc 的其他 Issue

查看 IBM/node-odbc 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。