diff --git a/dlls/msi/database.c b/dlls/msi/database.c index b7938635dd2..c36139e705a 100644 --- a/dlls/msi/database.c +++ b/dlls/msi/database.c @@ -388,7 +388,9 @@ static LPWSTR msi_build_createsql_columns(LPWSTR *columns_data, LPWSTR *types, D type = type_char; sprintfW(size, size_fmt, ptr); break; - case 'I': case 'i': + case 'i': + lstrcpyW(extra, type_notnull); + case 'I': if (len == 2) type = type_int; else diff --git a/dlls/msi/tests/db.c b/dlls/msi/tests/db.c index 9a3945197d1..7742d069b94 100644 --- a/dlls/msi/tests/db.c +++ b/dlls/msi/tests/db.c @@ -1433,17 +1433,14 @@ static void test_msiimport(void) count = MsiRecordGetFieldCount(rec); ok(count == 9, "Expected 9, got %d\n", count); ok(check_record(rec, 1, "s255"), "Expected s255\n"); + ok(check_record(rec, 2, "i2"), "Expected i2\n"); + ok(check_record(rec, 3, "i2"), "Expected i2\n"); ok(check_record(rec, 4, "I2"), "Expected I2\n"); + ok(check_record(rec, 5, "i4"), "Expected i4\n"); ok(check_record(rec, 6, "I4"), "Expected I4\n"); ok(check_record(rec, 7, "S255"), "Expected S255\n"); ok(check_record(rec, 8, "S0"), "Expected S0\n"); ok(check_record(rec, 9, "s0"), "Expected s0\n"); - todo_wine - { - ok(check_record(rec, 2, "i2"), "Expected i2\n"); - ok(check_record(rec, 3, "i2"), "Expected i2\n"); - ok(check_record(rec, 5, "i4"), "Expected i4\n"); - } MsiCloseHandle(rec); query = "SELECT * FROM `TestTable`"; diff --git a/dlls/msi/tests/install.c b/dlls/msi/tests/install.c index fe856f75efe..f5a2eeb694a 100644 --- a/dlls/msi/tests/install.c +++ b/dlls/msi/tests/install.c @@ -764,13 +764,13 @@ static void test_packagecoltypes(void) count = MsiRecordGetFieldCount( rec ); ok(r == ERROR_SUCCESS, "MsiViewGetColumnInfo failed\n"); ok(count == 6, "Expected 6, got %d\n", count); + ok(check_record(rec, 1, "i2"), "wrong column label\n"); + ok(check_record(rec, 2, "i4"), "wrong column label\n"); ok(check_record(rec, 4, "S255"), "wrong column label\n"); ok(check_record(rec, 5, "S32"), "wrong column label\n"); ok(check_record(rec, 6, "S72"), "wrong column label\n"); todo_wine { - ok(check_record(rec, 1, "i2"), "wrong column label\n"); - ok(check_record(rec, 2, "i4"), "wrong column label\n"); ok(check_record(rec, 3, "L64"), "wrong column label\n"); }