2010-11-18 21 views
1

C++ kodumda, satırları bir tabloya eklemek için ADO komutunu çalıştırmaya çalıştığımda, yalnızca belirli sayıda satır ekler. Aynı komut, .NET'te System.Data.SqlClient kullanırken de iyi çalışır.ADO komutu tsql sorgu sorunlarını ekle

Sql profiler ADO veya sqlclient kullanırken aynı textdata gösterir. Aşağıda benim insert komutum var, konuyu ortaya çıkarmak için başka ne yapacağımdan emin değilim.

Bu konuda herhangi bir yardım için teşekkür ederiz.

Komut metni:

declare @i int set @i = 1 while (@i < 255) 
begin 
    insert into table1 (name,type, order, state) values (@i, N'type',0,0) 
    set @i = @i +1 
end 

Yukarıdaki komut 153 satır sona erer. Bu tablo büyüklüğüne bağlı mı? Komutu iki kez çalıştırırsam, ardışık olarak @ 0 ila 150 arasında ve diğeri 150 ila 255 arasında bir aralıkta tüm satırlar düzgün eklenir. ADO komutu yürütme için bir sınır mıyım?

Bu benim bağlantı dizesi ve ben bağlantıyı kurmak için kullanıyorum kodudur: Yardımlarınız için

CoInitializeEx(NULL, COINIT_APARTMENTTHREADED); 
ADODB::_ConnectionPtr m_Conn = NULL; 
TCHAR connString[255]; 
    _stprintf(connString, 
     _T("DRIVER=SQL Server;SERVER=np:(local)\\MyInstance;DATABASE=test;")); 

    HRESULT hr; 
    hr = m_Conn.CreateInstance(__uuidof(ADODB::Connection)); 
    if (hr != S_OK) { 
    wprintf(_T("CreateInstance(__uuidof(ADODB::Connection)) failed. Error: %d"), hr); 
    return 0; 
    } 

    m_Conn->ConnectionTimeout = 1800; 
    m_Conn->CommandTimeout = 1800; 

    hr = m_Conn->Open((LPCTSTR)connString, _T(""), _T(""), 
     ADODB::adConnectUnspecified); 
    if (hr != S_OK) { 
    wprintf(_T("Open(%ws, '', '', ADODB::adConnectUnspecified) failed."), 
     connString); 
    return 0; 
    } 

teşekkürler.

+0

Gerçekten, 153. satırda ölümcül bir hata yaptığınızı tahmin ediyorum ve neden olursa olsun, bildirilmiyorsunuz. Bu satırın ne olduğunu ve ham SQL'i çalıştırmayı öneririm. –

+0

Sadece denedim ve ham SQL ile herhangi bir hataya rastlamadım. Ayrıca, aynı sql'i kullanır ve bir sql istemcisinde çalışırsam, iyi gider. – neblinc1

cevap

0

Çalışıyorum. 'SET NOCOUNT ON' ifadesinin eklenmesi, insertin devam etmesine izin verdi. ADO'da sınırın ne olduğundan emin değil.