Ошибка 2147217900 не удалось выполнить sql запрос

Проблемы

Ошибка во время выполнения «-2147217900 (80040e14)»: [Microsoft] [драйвер SQL Server ODBC] [SQL Server] в запросе используются операторы внешнего соединения, не относящиеся к ANSI («* =» или «= *»). Чтобы выполнить этот запрос без изменения, установите для свойства уровень совместимости текущей базы данных значение 80 или ниже, используя sp_dbcmptlevel хранимой процедуры. Настоятельно рекомендуется переписать запрос с использованием операторов внешнего соединения ANSI (левое ВНЕШНее соединение, ПРАВОе ВНЕШНее соединение). В будущих версиях SQL Server операторы соединения, не относящиеся к ANSI, не поддерживаются даже в режимах обратной совместимости, эта ошибка возникает в одном из следующих трех экземпляров.

  1. FDM 6,0 и 7,0 — ошибка в ФИНАНСОВом масштабе в формате строки для базы данных SQL 2005.

  2. FRL13, FDM 6,0 и 7,0 — ошибка при запуске мастера отчетов для базы данных SQL 2005.

  3. Отчеты с эталонными кодами, TREF, TPROJ получать ошибки для SQL 2005 DB.

Статус

Этот SMR был исправлен в пакете обновления для R07670 и последующих пакетах обновления, а также на веб-сайте (www.FRxSoftware.com) для обеспечения доступности пакетов обновления для главной книги. Вы также можете зарегистрироваться для автоматического уведомления о службах на нашем веб-сайте.

Обходное решение

Чтобы обойти эту ошибку, выполните указанные ниже действия, чтобы установить уровень совместимости базы данных в 80:

  1. В корпоративном диспетчере щелкните правой кнопкой мыши базу данных. Выберите пункт Свойства.

  2. Откройте вкладку Параметры.

  3. Измените уровень совместимости на 80.

Ссылки

Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Symptoms

Run-time error ‘-2147217900 (80040e14)’:[Microsoft][ODBC SQL Server Driver][SQL Server]The query uses non-ANSI outer join operators («*=» or «=*»).

To run this query without modification, please set the compatibility level for current database to 80 or lower, using stored procedure sp_dbcmptlevel. It is strongly recommended to rewrite the query using ANSI outer join operators (LEFT OUTER JOIN, RIGHT OUTER JOIN).

In the future versions of SQL Server, non-ANSI join operators will not be supported even in backward-compatibility modes

This error occurs in any one of the following three instances:

  1. FDM 6.0 and 7.0 — Error in GL Zoom in row format against SQL 2005 database.

  2. FRL13, FDM 6.0 and 7.0 — Error launching Report Wizard against a SQL 2005 DB.

  3. Reports with Reference Codes, TREF, TPROJ receive error against SQL 2005 DB.

Status

This SMR has been fixed in R07670 Service Pack and subsequent Service Packs, please check or website (www.FRxSoftware.com) for availability of Service Packs for your General Ledger. You may also sign up for automatic notification of Services on our website .

Workaround

To work around the issue, do the following to set the Compatibility Level of the Database to 80:

  1. In Enterprise Manager, right click the database. Select Properties.

  2. Select the Options Tab.

  3. Change the Compatibility Level to 80.

References

Need more help?

Want more options?

Explore subscription benefits, browse training courses, learn how to secure your device, and more.

Communities help you ask and answer questions, give feedback, and hear from experts with rich knowledge.

  • Remove From My Forums

 none

Причина ошибки.

  • Вопрос

  • 80040E14 (-2147217900)

    Не удалось продолжить просмотр с NOLOCK вследствие перемещения данных.

    В чем может быть причина данной ошибки? Мне на ум приходит только прямое описание. Т.е. данные были изменены во время выполнения запроса. Могут ли быть другие причины?

Ответы

  • Могут. Битая база, например. А зачем вы читаете с NOLOCK в конкурентной среде?

    • Помечено в качестве ответа

      23 декабря 2013 г. 10:08

    • Изменено
      Alexey KnyazevEditor
      19 декабря 2013 г. 6:02
    • Помечено в качестве ответа
      Иван Владимирович
      23 декабря 2013 г. 10:07
  • начните с проверки целостности БД! Как бы не оказалось, что проблема куда более серьёзная!


    http://www.t-sql.ru

    • Помечено в качестве ответа
      Иван Владимирович
      23 декабря 2013 г. 10:08

  • Если проблеммы в версии и конфигурации нет, то меняйте код…


    http://www.t-sql.ru

    • Помечено в качестве ответа
      Иван Владимирович
      23 декабря 2013 г. 10:07

Co-worker is on sabbatical and I am covering for him for SQL Reports and such. Need help looking at his code and figuring out why it is failing. This code is in Excel-VBA and pulling in from SQL Server Management Studio. As you can see, some of the code is commented out. Any help would be appreciated.

Function queryData(strSQL As String, ByRef objDB As Object)
    'v1.0 - 2006.11.17 - Jaes W Overley (JO3945)
    'v1.1 = 2013.08.26 - Jaes W Overley (JO3945)
    'v1.2 - 2015.08.11 - Mark Waters
    Dim objField As Object, objRS As Object
    Dim lngCol As Long
    Dim strConnect As String
    Dim results As Variant
    Dim emptyarray(0 To 2, 0 To 0) As String
    emptyarray(0, 0) = ""
    emptyarray(1, 0) = ""
    emptyarray(2, 0) = ""
    'Set objDB = New ADODB.Connection
    Set objRS = New ADODB.Recordset

    'used to have connect here - commented out so we only connect once when we run more than one query
    'If Not CONNECTED(strConnect) Then Exit Function

    'Open Database
    'objDB.Open strConnect
    objRS.Open strSQL, objDB
    'Add Field Headers
    'For Each objField In objRS.Fields
    '    lngCol = lngCol + 1
    '    With .Cells(1, lngCol)
    '        .Value = UCase(objField.Name)
    '        .Font.Bold = True
    '        .Font.Color = vbWhite
    '        .Interior.Color = vbBlue
    '    End With
    'Next
    If Not objRS.EOF Then
        results = objRS.GetRows
    Else
        results = emptyarray
    End If
    objRS.Close
    'objDB.Close
    queryData = results
End Function

Here is the SQL code:

select 
    envPkgs.Client_Mnemonic
    , envPkgs.Environment 
    , PkgInfo.OCD_Number 
    , envPkgs.Install_Date_Time
    , PkgInfo.Name 
    , pkginfo.External_Solution_Name 
    , PkgInfo.Type_String 
    , CASE WHEN testedPkgs.sts ='Tested' THEN 'Tested' 
        WHEN awarePkgs.sts = 'Aware' THEN 'Aware' 
        Else 'Needs Review' END AS 'Status'
from MSA_Package_Install_Summary envPkgs with (nolock) 
join OCD_Base_Data PkgInfo with (nolock) 
    on envPkgs.OCD_Number = PkgInfo.OCD_Number 
left join ( VALUES ('IHC_UT', 86993, 'Tested'), ('IHC_UT', 72826, 'Tested'), ('IHC_UT', 83972, 'Tested'), ('IHC_UT', 87465, 'Tested'), ('BRMC_IA', 87345, 'Tested'), ('BRMC_IA', 86713, 'Tested'), ('BRMC_IA', 87374, 'Tested'), ('BRMC_IA', 84724, 'Tested'), ('IHC_UT', 87391, 'Tested') 
, ('IHC_UT', 86133, 'Tested'), ('IHC_UT', 86132, 'Tested'), ('IHC_UT', 86131, 'Tested'), ('IHC_UT', 86128, 'Tested'), ('IHC_UT', 86126, 'Tested'), ('IHC_UT', 86125, 'Tested'), ('IHC_UT', 86124, 'Tested'), ('IHC_UT', 86123, 'Tested'), ('IHC_UT', 86122, 'Tested'), ('IHC_UT', 86121, 'Tested') 
, ('IHC_UT', 84544, 'Tested'), ('RUTL_VT', 85684, 'Tested'), ('RUTL_VT', 84159, 'Tested'), ('RUTL_VT', 82963, 'Tested'), ('RUTL_VT', 86993, 'Tested'), ('RUTL_VT', 86805, 'Tested'), ('RUTL_VT', 86795, 'Tested'), ('RUTL_VT', 86794, 'Tested'), ('RUTL_VT', 86793, 'Tested'), ('RUTL_VT', 86792, 'Tested') 
, ('RUTL_VT', 86804, 'Tested'), ('UNIV_MO', 86972, 'Tested'), ('UNIV_MO', 86952, 'Tested'), ('UNIV_MO', 83038, 'Tested'), ('UNIV_MO', 82950, 'Tested'), ('UNIV_MO', 87691, 'Tested'), ('UNIV_MO', 66422, 'Tested'), ('YAVA_AZ', 84958, 'Tested'), ('YAVA_AZ', 86204, 'Tested'), ('YAVA_AZ', 86993, 'Tested') 
, ('YAVA_AZ', 86068, 'Tested'), ('AGNE_WI', 835321-10434458131, 'Tested'), ('AGNE_WI', 84416, 'Tested'), ('AGNE_WI', 86305, 'Tested'), ('AGNE_WI', 85772, 'Tested'), ('AGNE_WI', 83647, 'Tested'), ('AGNE_WI', 86949, 'Tested'), ('AGNE_WI', 84459, 'Tested'), ('AGNE_WI', 86095, 'Tested'), ('AGNE_WI', 86052, 'Tested') 
, ('AGNE_WI', 84920, 'Tested')) AS testedPkgs (mnem, pkg, sts)
    on testedPkgs.mnem = envPkgs.Client_Mnemonic and testedPkgs.pkg = PkgInfo.OCD_Number 
left join ( VALUES ('IHC_UT', 86993, 'Aware'), ('IHC_UT', 72826, 'Aware'), ('IHC_UT', 83972, 'Aware')) AS awarePkgs (mnem, pkg, sts)
    on awarePkgs.mnem = envPkgs.Client_Mnemonic and awarePkgs.pkg = PkgInfo.OCD_Number 
left join MSA_Package_Install_Summary dupe with (nolock) 
    on dupe.Client_Mnemonic = envPkgs.Client_Mnemonic
    and dupe.OCD_Number = envPkgs.OCD_Number
    and dupe.Install_Date_Time < envPkgs.Install_Date_Time
where 
    envPkgs.Client_Mnemonic IN ('AGNE_WI', 'AH_MO', 'AHMO_CT', 'AHMO_ET', 'ARMC_GA', 'BH_AL', 'BRMC_IA', 'CARE_RH', 'CERN_CLIN' 
, 'CERN_RWX', 'CHAR_NC', 'CHI_CO', 'CHI_CO', 'CHW_CA', 'CHWB_CA', 'CRVN_NC', 'LEID_VA', 'EAST_AL', 'EJEF_LA' 
, 'EXCL_PA', 'GHS_IA', 'GLEN_NY', 'IHC_UT', 'JACK_FL', 'LAC_CA', 'LMH_KS', 'MCGH_GA', 'NAPL_FL', 'NKCMH_MO' 
, 'NMHS_NE', 'PHA_SC', 'QEMR_AU', 'RUTL_VT', 'SGEN_OH', 'THCH2_TX', 'THCH5_TX', 'THCH6_TX', 'TRUM_MO', 'UCQS_AU' 
, 'UMC_TX', 'UNIV_MO', 'YAVA_AZ')
    and envPkgs.Install_Date_Time >= getDate() - 7
    and dupe.Client_Mnemonic IS NULL
Order by 
    envPkgs.Install_Date_Time desc

I am building a setup project using WIX 3.10. I need to create a SQL Server database from the installer, for that I am using a script generated by Visual Studio Database Project.

My WIX code is:

<Binary Id="SQLCreateScript" SuppressModularization="no"  SourceFile="$(var.TestInstallDBProject.TargetDir)$(var.TestInstallDBProject.ProjectName)_Create.sql" />

AND

<Component Guid="3B413DBB-603B-42BA-80A6-BA8ED5216ACE" Id="FornetDB" Directory="DirIIS" KeyPath="yes">

  <sql:SqlScript BinaryKey="SQLCreateScript" ExecuteOnInstall="yes" SqlDb="MasterDB"  Id="CreateScript" />
</Component>
<sql:SqlDatabase Database="Master"
                       Server="TUSHAR"
                       Instance="SQLSERVER2008R2"
                       Id="MasterDB"
                       ></sql:SqlDatabase>

It throws this error:

it throws following Error while installation

I opened file generated in Notepad++ but can’t see characters. Error message has

File In Notepad++

marc_s's user avatar

marc_s

728k174 gold badges1327 silver badges1455 bronze badges

asked Jun 29, 2016 at 13:09

goyaltushar92's user avatar

2

To solve my problem I use custom MSbuild Task, that remove BOM information from text (SQL) file. Here Is Code:

using System.Linq;
using Microsoft.Build.Framework;
using Microsoft.Build.Utilities;

namespace CustomBuildTasks
{
    public class RemoveBOMInfo : Task
    {
        private  ITaskItem[] _FilesToRemoveBOMInfo;

        [Required]
        public  ITaskItem[] FilesToRemoveBOMInfo { get { return _FilesToRemoveBOMInfo; } set { _FilesToRemoveBOMInfo = value; } } 

        public override bool Execute()
        {
            if (FilesToRemoveBOMInfo == null || FilesToRemoveBOMInfo.Count() < 1)
            {
                Log.LogError("FilesToRemoveBOMInfo can't be null or Empty.");
                return false; 
            }
            //var Files = FilesToRemoveBOMInfo.Split(';');
            foreach (var File in FilesToRemoveBOMInfo) 
            {
                var str = File.GetMetadata("Identity");
                if (!System.IO.File.Exists(str)) 
                {
                    Log.LogError("File {0} not found.", str);
                    continue;
                }
                using (var file = System.IO.File.Open(str, System.IO.FileMode.Open, System.IO.FileAccess.Read))
                {
                    int fByte = file.ReadByte();
                    if (fByte != 239)
                        continue;
                    fByte = file.ReadByte();
                    if (fByte != 187)
                        continue;
                    fByte = file.ReadByte();
                    if (fByte != 191)
                        continue;
                    using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                    {
                        for (int i = 0; i > -1; ) 
                        {
                            i = file.ReadByte();
                            if (i > 0)
                            {
                                ms.WriteByte((byte)i);
                            }
                        }
                        file.Close();
                        System.IO.File.Delete(str);
                        using (var oFile = System.IO.File.Create(str))
                        {
                            ms.WriteTo(oFile);
                            oFile.Close();
                        }
                    }
                }
            }
            return true;
        }
    }
}

and used in MSBuild script as:

<Target Name="AfterResolveReferences" >
    <RemoveBOMInfo FilesToRemoveBOMInfo="%(_ResolvedProjectReferencePaths.RelativeDir)%(_ResolvedProjectReferencePaths.Name)_Create.sql" Condition="'%(_ResolvedProjectReferencePaths.IsSQLProj)' == 'True'" ></RemoveBOMInfo>    
</Target>

answered Jul 3, 2016 at 9:31

goyaltushar92's user avatar

1

Like this post? Please share to your friends:
  • Ошибка 2147024809 параметр задан неверно
  • Ошибка 2145 ваз 2114
  • Ошибка 2140930030 при установке принтера windows 10
  • Ошибка 214 при подключении принтера
  • Ошибка 214 пассат б5