小编pio*_*jow的帖子

打字稿 3.7 部分,不可分配给类型 never/undefined

将 typescript 版本升级到 3.7 后,我在 2 个函数中遇到了类型错误。功能正常工作(添加@ts-ignore 时一切正常)。

interface A {
    x: string,
    y: number,
}

interface B {
    x: string,
    y: number,
    z: boolean,
}

function extract(input: B, keys: Array<keyof A>): Partial<A> {
    const extract: Partial<A> = {};
    keys.forEach((key: keyof A) => {
        extract[key] = input[key]; // error!
    //  ~~~~~~~~~~~~ <-- 'string | number' is not assignable to 'undefined'    
    });
    return extract;
}

function assign(target: B, source: Partial<A>): void {
    (Object.keys(source) as Array<keyof A>).forEach((key) => {
        target[key] = source[key]!; …
Run Code Online (Sandbox Code Playgroud)

typescript

7
推荐指数
1
解决办法
3774
查看次数

jdbc的registerOutParameter中的sqlType是什么意思?

我正在使用 jdbc CallableStatement 来执行 MySQL 数据库中的过程。在编写单元测试时,我遇到了关于 registerOutParameter 方法的奇怪行为。

使用的 SQL 过程

PROCEDURE TEST_DOUBLE( OUT val DOUBLE ) BEGIN SET val = 2.5; END
PROCEDURE TEST_TEXT( OUT val TEXT ) BEGIN SET val = 'test'; END
Run Code Online (Sandbox Code Playgroud)

测试

statement = connection.prepareCall( "CALL TEST_DOUBLE(?)" );
statement.registerOutParameter( "val" , java.sql.Types.INTEGER );
statement.execute();
statement.getInt( "val" ); //Integer 2
statement.getDouble( "val" ); //Double 2.5
statement.getString( "val" ); //String "2.5"

statement = connection.prepareCall( "CALL TEST_TEXT(?)" );
statement.registerOutParameter( "val" , java.sql.Types.INTEGER );
statement.execute();
statement.getInt( "val" ); //Invalid value …
Run Code Online (Sandbox Code Playgroud)

java mysql sql-types jdbc

5
推荐指数
1
解决办法
4685
查看次数

插入期间结果包含多行

我在使用 中的存储过程时遇到问题MySQL 5.5.41。问题是在程序执行期间抛出错误 - Error code: 1172, SQLState: 42000, Message: Result consisted of more than one row。奇怪的是,它在执行语句时抛出:

    INSERT INTO TB__X
           (FK__A, FK__B, FK__C, FK__D, E, F, G, H, I, J, L)
        VALUES 
           (9106, 4927, NULL, 3, 4.9990234375, 20, 0, 0, 1, 0, 1);
Run Code Online (Sandbox Code Playgroud)

该表是:

CREATE TABLE `TB__X` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`FK__A` int(11) NOT NULL,
`FK__B` int(11) NOT NULL,
`FK__C` int(11) DEFAULT NULL,
`FK__D` int(11) NOT NULL,
`E` double NOT NULL,
`F` int(11) NOT NULL, …
Run Code Online (Sandbox Code Playgroud)

mysql stored-procedures insert

4
推荐指数
1
解决办法
6520
查看次数

标签 统计

mysql ×2

insert ×1

java ×1

jdbc ×1

sql-types ×1

stored-procedures ×1

typescript ×1