sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
sql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

19 Ağustos 2015 Çarşamba

AXAPTA - Direk SQL ifadesi çalıştırma

 Bu blogda verilen örnek çok işime yaradı. Ancak bu blog ve diğer tüm bloglarda verilen örneklerde her kayıtta hep tek bir field okunmuş. Birden fazla field okumaya kalktığımda index hatası aldım. Daha sonra Microsoft'un bu sayfasında fieldların artan nümerik sırada okunması gerektiğini öğrendim ve sorunum çözülmüş oldu. Metodunuzu server tarafında çalıştırın. Yoksa yetki hatası alabilirsiniz. Insert ve delete işlemleri için de (Axapta tabloları için pek tavsiye edilebilecek bir durum olmasa da) executeQuery yerine executeUpdate metodunu kullanabilirsiniz.

public server static InventRep FillSQL(DatePhysical _DatePhysical = today())
{
    InventRep   InventRep;

    Connection      connection;
    Statement       statement;
    str             query,dateStr;
    Resultset       resultSet;

    ;

    dateStr = date2str(_DatePhysical,321,dateday::Digits2,dateseparator::None,
    datemonth::Digits2,dateseparator::None,dateyear::Digits4);

    connection = new Connection();
    statement = connection.createStatement();
    query =
        "select ITEMID,SUM(QTY)"+
        "from INVENTTRANS "+
        "where DATAAREAID='TST'"+
        "and DATEPHYSICAL <='"+dateStr+"' "+
        "group by ITEMID "+
        "having SUM(QTY) <>0";
     new SqlStatementExecutePermission(query).assert();
     resultSet = statement.executeQuery(query);
     while(resultSet.next())
     {
        //---- fieldlar mutlaka nümerik artan sırada okunmalı ------
        InventRep.ItemId = resultSet.getString(1);
        InventRep.Qty    = resultSet.getReal(2);
        InventRep.insert();
     }
     CodeAccessPermission::revertAssert();
}

2 Ocak 2015 Cuma

SQL SERVER - SA şifresi silindiyse ve kimsede Sysadmin yetkisi yoksa?

SQL Server Configuration Manager içinde ilgili sunucunun özelliklerine girin. Advanced/Gelişmiş tabında Properties/Özellikler alanına "-m" parametresini ekleyin. Ancak bu parametreyi eklerken bir önceki parametrenin sonuna ";" koyun ve hiç boşluk bırakmayın! Yani ";-m" şeklince yazacaksınız (tırnak işaretleri yok).
SQL Sunucuyu yeniden başlatın. Sunucunuz single modda başlayacak.
SQLCMD.EXE dosyasını admin yetkisiyle başlatın. SQL Server'a girmek için kullandığınız Windows kullanıcısına aşağıdaki gibi Sysadmin yetkisi verin:

EXEC sp_addsrvrolemember "myserver\myuser","sysadmin";
GO

ya da

EXEC sp_password NULL, 'newpwd', 'sa';
GO

Eklediğiniz paremetreyi silip sunucunuzu normal modda başlatmayı unutmayın!..

kaynak:
http://blogs.msdn.com/b/raulga/archive/2007/07/12/disaster-recovery-what-to-do-when-the-sa-account-password-is-lost-in-sql-server-2005.aspx