Простой пример с Putquery

отредактировано 16:34 Раздел: FastReport Studio
Вот целиком моё приложение. Не понимаю почему "усыпает" намертво на строчке qr->PutQuery - до неё всё работает
#import "libid:d3c6fb9b-9edf-48f3-9a02-6d8320eaa9f5" named_guids auto_rename
using namespace FastReport;
#include <windows.h>
int main()
{
	CoInitialize(NULL);
	int hr = 0;
	try
	{
		IfrxReportPtr pReport(__uuidof(TfrxReport));
		hr = pReport->LoadReportFromFile(L"D:\\temp.fr3");		
		IfrxADODatabasePtr db = pReport->FindObject( L"ADODatabase");

		if (db != 0) {		
			db->PutConnected( false );
			db->PutConnectionString(L"Provider=SQLOLEDB.1;Password=sysdba;Persist Security Info=True;User ID=sa;Initial Catalog=forFR;Data Source=S-GOLOVIN\SQLEXPRESS2008NU;");
			db->PutCommandTimeout(0);
			db->PutConnectionTimeout(0);
			
			IfrxADOQueryPtr qr = pReport->FindObject( L"ADOQuery");
			if (qr != 0) {				
				qr->PutCommandTimeout(0);						
				qr->PutQuery(L"SELECT top 10 [int],[char] FROM [dbo].[one]");
				db->PutConnected(true);
				//m_pAxReport->SetReport(m_pReport);
				hr = pReport->PrepareReport( true );
				if(!hr)
				{
					pReport->ShowPreparedReport();	
				}
			}				
		}
	}
	catch(_com_error e) 
	{		
		hr = e.Error();
	}

	CoUninitialize(); 
	return 0;
}

Комментарии

  • отредактировано 16:34
    Решена проблема, неправильная строка подключения, забыл слэш экранировать (эхе-хех). Но поведение фаст-репорта в такой ситуации весьма странно: вместо того чтобы выкинуть исключение или выдать предупреждение, он просто виснет при первом обращении к объекту запроса (не базы!).

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.