Logo Güncellemede çıkan hata mesajı "***Microsoft OLE DB Provider for SQL Server : Invalid Column Name “xxx” Uyarısı Alındığında Neler Yapılmalıdır?

Tuncay ÖZER Tuncay ÖZER


Nisan 2022 Siber Güvenlik (13) 0


Logo Güncellemede çıkan hata mesajı "***Microsoft OLE DB Provider for SQL Server : Invalid Column Name “xxx” Uyarısı Alındığında Neler

Yapılmalıdır?

Programda Invalid Column Name uyarısı bazı tablolarda olması gereken kolonların eksik olduğu durumlarda karşımıza çıkar. Bu uyarının aşılması için yapılması gereken işlem adımları şunlardır:

1 – Kolonların sorunsuz oluşması için kullanılan Sql versiyonu ile ilgili veritabanı üzerinde sql uyumluluğu aynı olmalıdır. Aynı değil ise veritabanı üzerinde sağ tuş Properties /Options/Compabilitiy Level seçeneği ile kullanılan sql versiyonu seçilmelidir. Ardından sistem işletmeninde firma tanımı üzerinde “Tabloları Sürüme Göre Güncelle” işlemi yapılmalıdır. Bu işlem sonucu datada herhangi bir problem yoksa ilgili alanlar oluşturulacaktır.

2 – Aşağıdaki sorgu ile uyarı alınan kolonlar tespit edilip tabloya kolon ekleme sorgusu oluşturulabilir.

Sorgu sorunsuz bir veritabanında çalıştırılmalıdır. Bunun için test veritabanı açılıp öncelikle tablolar oluşturulmalıdır. Test veri tabanında yapmanız gereken işlem adımları şunlardır:

  • Aşağıdaki cursorda Where bölümündeki “Column Name” alanında hata mesajında gelen kolon adı yazılmalıdır

SELECT ‘ALTER TABLE ‘ + TABLE_NAME +’ ‘+

‘ADD’+’ ‘ + COLUMN_NAME + ‘ ‘ + DATA_TYPE +

CASE WHEN CHARACTER_MAXIMUM_LENGTH = -1 THEN ‘(max)’ WHEN DATA_TYPE in (‘text’,’ntext’) THEN ”

WHEN CHARACTER_MAXIMUM_LENGTH IS NOT NULL

THEN ‘(‘+(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH)+’)’ ) ELSE ISNULL(CONVERT(VARCHAR,CHARACTER_MAXIMUM_LENGTH),’ ‘) END +’ ‘+

CASE IS_NULLABLE WHEN ‘YES’ THEN ‘NULL’ WHEN ‘No’ THEN ‘NOT NULL’ END

FROM INFORMATION_SCHEMA.COLUMNS

WHERE TABLE_NAME NOT LIKE (‘LV_%’) AND COLUMN_NAME=’xxxxxxxxxx

  • Cursor çalıştırıldığında dönen sonuçta kolon ekleme sorgusu oluşacaktır. Bu sorgu sorun yaşanan veritabanı için çalıştırılmalıdır.(Sorgudaki tablonun firma ve dönem bilgileri kullanıcının veritabanı tablolarına göre güncellenmelidir) Böylece oluşmamış olan kolon bu sorgu vasıtasıyla oluşturulmuş olacaktır.