私は (PRINT) データをきれいに出力する SQL クエリを提供されました。スティッキーな部分は、既に EF4.1 を使用しているアプリケーションを介して、それを実行する必要があることです (そして、明らかに後で出力を使用する必要があります)。
これが私がこれまでに持っているものです。
string sqlQuery = string.Empty;
_ctx.Connection.Open();
DbCommand com = _ctx.Connection.CreateCommand();
sqlQuery = @"declare @note varchar(1000)
set @note = (select
'Client: '+cast([NO_CLIENT] as varchar)+' - '+TABLE1.[nom]+
CHAR(13)+CHAR(10)+
'Adr_1 '+[ADR_1]+
CHAR(13)+CHAR(10)+
'Adr_2 '+[ADR_2]+
CHAR(13)+CHAR(10)+
'Adr_3 '+[ADR_3]+
CHAR(13)+CHAR(10)+
'Adr_4 '+[ADR_4]+
CHAR(13)+CHAR(10)+
'Contact: '+[CONTACT]+
CHAR(13)+CHAR(10)+
'Postal Code|Code Postal: '+substring([CODE_POSTAL],1,3)+' '+substring([CODE_POSTAL],4,3)+
CHAR(13)+CHAR(10)+
'Tel No: '+[TELEPHONE]+' Ext.: '+[POSTE_EXTENSION]+
CHAR(13)+CHAR(10)+
'Fax No: '+[NO_FAX]+
CHAR(13)+CHAR(10)+
'Clinic: '+[CLINIQUE_QUI_FACTURE]+
CHAR(13)+CHAR(10)+
'Langu.: '+ case [LANGUE] when 1 then 'Fr' when 2 then 'En' Else 'N/A' end+
CHAR(13)+CHAR(10)+
case [ACTIF] when 0 then 'Non-Active|Inactif' when 1 then 'Active|Actif' Else 'N/A' end+
CHAR(13)+CHAR(10)+
'Account Man.|Chargé Cpte: '+CAST(TABLE1.[NO_VENDEUR_1] AS VARCHAR)+' - '+clve.[NOM]+
CHAR(13)+CHAR(10)+
'DATE REGISTERED|DATE ENREGISTREMENT: '+[DATE_ENREGISTREMENT]+
CHAR(13)+CHAR(10)+
'---------- MARKETING INFO ----------'+
CHAR(13)+CHAR(10)+
'Company|Cie: '+[TABLE2_NOM]+
CHAR(13)+CHAR(10)+
'Contact: '+[TABLE2_CONTACT]+
CHAR(13)+CHAR(10)+
'Tel.: '+[TABLE2_TELEPHONE]+
CHAR(13)+CHAR(10)+
'Adr_1: '+[TABLE2_ADR1]+
CHAR(13)+CHAR(10)+
'Adr_2: '+[TABLE2_ADR2]+
CHAR(13)+CHAR(10)+
'Adr_3: '+[TABLE2_ADR3]+
CHAR(13)+CHAR(10)+
'Adr-4: '+[TABLE2_ADR4]+
CHAR(13)+CHAR(10)+
'City|Ville: '+[TABLE2_VILLE_PROV]+
CHAR(13)+CHAR(10)+
'Postal Code|Code Postal: '+substring([TABLE2_CODE_POSTAL],1,3)+' '+substring([TABLE2_CODE_POSTAL],4,3)+
CHAR(13)+CHAR(10)+
'Fax No: '+[TABLE2_FAX_1]+
CHAR(13)+CHAR(10)+
'Ext.: '+[TABLE2_FAX_1_POSTE]+
CHAR(13)+CHAR(10)+
'Fax 2 :'+[TABLE2_FAX_2]+
CHAR(13)+CHAR(10)+
'Email1: '+[TABLE2_EMAIL1]+
CHAR(13)+CHAR(10)+
'Email2: '+[TABLE2_EMAIL2]
FROM TABLE1
left join TABLE3 on TABLE1.no_vendeur_1 = TABLE3.no_vendeur
where [NO_CLIENT] = 2003)
print @note
";
com.CommandText = @sqlQuery;
DbDataReader rd = com.ExecuteReader();
クエリは SQL Management Studio で正常に実行されますが、アプリケーションがクエリを実行すると、この例外が発生します: (何らかの形で解析しているように見えます)
The query syntax is not valid. Near term '@note', line 1, column 14.
私は何を間違っていると思いますか?(多分全部笑)