Özgür Özvarış

Bir yazılımcının kırık dökük dünyası

MSSQL Basit Cursor - 2

clock Kasım 5, 2018 13:10 by author OzgurOzvaris

Merhaba

Dün yeni bir cursor'a daha ihtiyacım oldu,

Belki faydası olabilir paylaşıyorum.

DECLARE @email VARCHAR(250) 
DECLARE @TANIM VARCHAR(256) 
DECLARE @FCCM1_ID numeric(12,0) 
DECLARE @COUNT int
 

set @COUNT = 0
 
SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112) 
 
DECLARE db_cursor CURSOR FOR  
SELECT email from unsubscribed_members_export_ef5$ 

 
OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @email
 
WHILE @@FETCH_STATUS = 0   
BEGIN   
       

	   if EXISTS (select TANIM FROM FCCM8_T WHERE TANIM = @email) 
	   begin
		
		
		select @FCCM1_ID  = FCCM1_ID  FROM FCCM8_T WHERE TANIM = @email

		IF NOT EXISTS (select FCCM1_ID from FCCM6 WHERE FCCM1_ID = @FCCM1_ID)
		begin
			insert FCCM6(FCCM1_ID,FSMUSOZEL_ID,FSOZLDEGER_ID) values( @FCCM1_ID, 79, 73)
			set @COUNT = @COUNT + 1
			print cast(@COUNT as varchar(10)) + ' '+ @email + ' ' + cast( @FCCM1_ID as varchar(10))

		end
		

	   end
 
       FETCH NEXT FROM db_cursor INTO @email
END  
 
print cast(@COUNT as varchar(10)) + ' '+ @email

CLOSE db_cursor   
DEALLOCATE db_cursor

Umarım faydası olur . İyi çalışmalar.

 



Office Excel Automation Server Access Denied

clock Ağustos 28, 2018 16:47 by author OzgurOzvaris

Merhaba,

Kaynak : 

https://stackoverflow.com/questions/15597490/exception-from-hresult-0x800a03ec-error-while-saving-excel-file

https://stackoverflow.com/questions/7106381/microsoft-office-excel-cannot-access-the-file-c-inetpub-wwwroot-timesheet-app

https://social.msdn.microsoft.com/Forums/windowsserver/en-US/01ef550d-22e8-4d34-804f-b998bbb0a585/microsoft-excel-cannot-access-the-file-822082308221-there-are-several-possible-reasons?forum=winserver2008appcompatabilityandcertification 

https://stackoverflow.com/questions/17777545/closing-excel-application-process-in-c-sharp-after-data-access

Windows geliştirme makinenizde sorunsuz olarak excel uygulamasını c# ile açtınız ancak sunucuda bir türlü aynı işlemleri yapamıyorsanız bu yazımız sizede fadalı olacaktır.

Üzerinde çalıştığınız klasöre everyone ve IIS Apllication pool a system kullanıcı haklarını verdiğiniz halde hala erişim problemi çıkarıyorsa Dcomcnfg.exe yi çalıştırmanızı ve dcom config altından "Microsoft Excel Application" ı çalıştırmanızı tavsiye ederim.

Burada properties diyeceksiniz ve identity bölümünden Administrator kullanıcısına hak vereceksiniz.

Detaylı bilgi için kaynak bölümünde paylaştığım url e bakabilirsiniz.

Excel uygulamasını kapatmakta ayrı bir problem. Quit desenizde ben kapatmayı başaramadım. Eğer sizdede aynı durum olursa aşağıdaki kod parçasını kullanabilirsiniz.

System.Diagnostics.Process[] process=System.Diagnostics.Process.GetProcessesByName("Excel");
foreach (System.Diagnostics.Process p in process)
{
    if (!string.IsNullOrEmpty(p.ProcessName))
    {
        try
        {
            p.Kill();
        }
        catch { }
    }
}

 

İyi çalışmalar.



Sql Server Foreign Key relationship

clock Ağustos 2, 2018 10:42 by author OzgurOzvaris

Merhaba,

kaynak : https://stackoverflow.com/questions/868620/sql-script-to-alter-all-foreign-keys-to-add-on-delete-cascade/50993672

 

Geçen bir ikincil indexi silmemiz gerekti. İlginç bir şekilde mssql Foreign Key relationship lerini bu ikincil indexe bağlamış tabloya ait bütün relationlarda gitti. Bizde mevcut bir müşteri database'inden bir tabloya ait relationları alan bir script arayışan girdik. Paylaşıyorum.

 

SELECT  
         KCU1.CONSTRAINT_NAME AS FK_CONSTRAINT_NAME 
        ,KCU1.TABLE_SCHEMA AS FK_SCHEMA_NAME 
        ,KCU1.TABLE_NAME AS FK_TABLE_NAME 
        ,KCU1.COLUMN_NAME AS FK_COLUMN_NAME 
        ,KCU1.ORDINAL_POSITION AS FK_ORDINAL_POSITION 
        ,KCU2.CONSTRAINT_NAME AS REFERENCED_CONSTRAINT_NAME 
        ,KCU2.TABLE_SCHEMA AS REFERENCED_SCHEMA_NAME 
        ,KCU2.TABLE_NAME AS REFERENCED_TABLE_NAME 
        ,KCU2.COLUMN_NAME AS REFERENCED_COLUMN_NAME 
        ,KCU2.ORDINAL_POSITION AS REFERENCED_ORDINAL_POSITION 
    FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS RC 

    INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU1 
        ON KCU1.CONSTRAINT_CATALOG = RC.CONSTRAINT_CATALOG  
        AND KCU1.CONSTRAINT_SCHEMA = RC.CONSTRAINT_SCHEMA 
        AND KCU1.CONSTRAINT_NAME = RC.CONSTRAINT_NAME 

    INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE KCU2 
        ON KCU2.CONSTRAINT_CATALOG = RC.UNIQUE_CONSTRAINT_CATALOG  
        AND KCU2.CONSTRAINT_SCHEMA = RC.UNIQUE_CONSTRAINT_SCHEMA 
        AND KCU2.CONSTRAINT_NAME = RC.UNIQUE_CONSTRAINT_NAME 
        AND KCU2.ORDINAL_POSITION = KCU1.ORDINAL_POSITION AND KCU2.TABLE_NAME = 'FSYS_DVZ'

 

Bu sorgu sadece listeliyor. oluşacak scriptin tamamı için kaynak bölümündeki url e bakabilirsiniz.

 

İyi çalışmalar.



Common Table Expression (CTE)

clock Mayıs 28, 2018 16:00 by author OzgurOzvaris

Merhaba,

Kaynak : When to use Common Table Expression (CTE)

How to create Temp Table with month columns based on date parameters?

Eğer sql ile recursive bir aylar yada yıllar listesi oluşturmak isterseni bu yöntemi kullanabilirsiniz

Günler döngüsü

DECLARE @StartDate DATE = '6/1/2013';

WITH Tablo(MDate) AS (
      SELECT @StartDate AS MDate
      UNION ALL
      SELECT DATEADD(dd, 1, MDate)
      FROM Tablo
      WHERE DATEADD(dd, 1, MDate) < DATEADD(mm, 1, @StartDate)
   )
SELECT MDate FROM Tablo
--temp tabloya al
SELECT  MDate INTO #tmp1 FROM Tablo

Aylar döngüsü

declare @start_date DATE = '20160101' 

;WITH CTE AS
(
    SELECT @start_date AS cte_start_date, DATENAME(month, @start_date) AS NAME , 0 AS Coun
    UNION ALL
    SELECT DATEADD(MONTH, 1, cte_start_date), DATENAME(month, DATEADD(MONTH, 1, cte_start_date)) AS NAME , 0 AS Coun
    FROM CTE
    WHERE DATEADD(MONTH, 1, cte_start_date)  < DATEADD(yy, 1, @start_date)  
)
Select * from CTE
--temp tabloya al
SELECT  Coun,Name INTO #tmp1 FROM CTE

İyi çalışmalar.



Devexpress MVC Could not load file or assembly 'Microsoft.Owin.Security.Cookies'

clock Mayıs 16, 2018 14:30 by author OzgurOzvaris

Merhaba,

Uzun bir aradır admin sayfama bir hatadan dolayı bağlanamıyordum sonunda erişebildim. Comment tadında bloglarımıza devam ediyoruz.

Kaynak : 

The "Could not load file or assembly 'Microsoft.Owin' or one of its dependencies" error occurs with a sample project that is created with DevExpress wizard

Devexpress MVC ile yeni bir uygulama visual Studio 2017 de gelişitrmeye çalıştığımda şu hatayı aldı 

 Çözümü

<dependentAssembly>
    <assemblyIdentity name="Microsoft.Owin" publicKeyToken="31bf3856ad364e35" culture="neutral" />
    <bindingRedirect oldVersion="0.0.0.0-3.0.1.0" newVersion="4.0.30319" />
</dependentAssembly>

İyi çalışmalar.

 



Windows full file path alma

clock Şubat 2, 2018 20:54 by author OzgurOzvaris

Merhaba ,

Kaynak

https://www.pcworld.com/article/251406/windows_tips_copy_a_file_path_show_or_hide_extensions.html

Bir dosyanın full pathini almak isterseniz shift + mouse right click yapmanız gerekiyor.

 

 

 

İyi çalışmalar.



Virtualbox Mevcut vmdk kopyası ile makine açma

clock Şubat 2, 2018 20:51 by author OzgurOzvaris

Merhaba,

Kaynak

https://stackoverflow.com/questions/44114854/virtualbox-cannot-register-the-hard-disk-already-exists 

Eğer mevcut bir vmdk dosyalı makineniz ile makine açmak isterseniz öncelikle Yeni makine ekliyor gibi başlatıp mevcut vmdk dosyasını seçmeniz gerekmektedir.

Eğer daha önce bu vmdk ile makine açtı iseniz bu uuid li makine mevcut hatası verecektir.

VBoxManage internalcommands sethduuid <file.vmdk>

Komutunu çalıştırırsanız sorunsuz olarak uuid nin id sini değiştirecek ve eklemenize izin verecektir.

İyi çalışmalar.

 



Handling HttpWebRequest.GetResponse WebException Error

clock Kasım 24, 2017 16:09 by author OzgurOzvaris

Merhaba ,

Kaynak :

https://stackoverflow.com/questions/7261986/how-to-get-error-information-when-httpwebrequest-getresponse-fails 

HttpWebRequest nesnesi bazı http status kodlarına göre hata dönebilir böyle bir durumda c# kodunuz catch'e düşecektir. Bu aşamada catch bloğunda bu responseların body kısmından hata ile ilgili içeriği alabilirsiniz.

try
{

            WebRequest webRequest = WebRequest.Create(txtUrl.Text);
            HttpWebRequest httpRequest = (HttpWebRequest)webRequest;

            httpRequest.Method = "POST";
            httpRequest.ContentType = "application/json; charset=utf-8";

            string sAuthorization = "Authorization: Basic " + txtApiKey.Text;
            httpRequest.Headers.Add(sAuthorization);

            httpRequest.ProtocolVersion = HttpVersion.Version11;
            httpRequest.Accept = "text/xml";
            httpRequest.Credentials = CredentialCache.DefaultCredentials;
            if (txtHeader.Text != "")
            {
                httpRequest.Headers.Add(txtHeader.Text);
            }

            Stream requestStream = httpRequest.GetRequestStream();
            //Create Stream and Complete Request             
            StreamWriter streamWriter = new StreamWriter(requestStream, Encoding.ASCII);
            streamWriter.Write(txtRequestData.Text);
            streamWriter.Close();
            
            HttpWebResponse wr = (HttpWebResponse)httpRequest.GetResponse();
            StreamReader srd = new StreamReader(wr.GetResponseStream());
            txtResponseData.Text = srd.ReadToEnd();



}
catch (WebException ex)
{
    using (var stream = ex.Response.GetResponseStream())
    using (var reader = new StreamReader(stream))
    {
        txtResponseData.Text = reader.ReadToEnd();
    }
}
catch (Exception ex)
{
    // Something more serious happened
    // like for example you don't have network access
    // we cannot talk about a server exception here as
    // the server probably was never reached
}

 

İyi çalışmalar

 

 



c# TLS 1.2 connection .Net 4.0

clock Kasım 23, 2017 11:42 by author OzgurOzvaris

Merhaba Arkadaşlar

Kaynak :

TCP/IP Protocol Architecture

SslProtocols Enumeration

https://stackoverflow.com/questions/4137106/are-there-net-implementation-of-tls-1-2 

https://stackoverflow.com/questions/37869135/is-that-possible-to-send-httpwebrequest-using-tls1-2-on-net-4-0-framework

Bu gün ödeme entegrasyonu yaptığımız sistemlerden bir tanesi artık TLS 1.1 değil TLS 1.2 kullandıklarını söyledi. Bizde kodumuzu ona uydurmak durumunda kaldık.

Öncelikle TLS kavaramının OSI katmanlarında Transpor Layer Security kavramına karışık geldiğini belirtmekte fayda görüyorum. 

.Net 4.5 versiyonunda sorunsuz olarak TLS 1.2 yi destekliyor

//System.Net.ServicePointManager.SecurityProtocol
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls; // comparable to modern browsers
var response = WebRequest.Create("https://www.howsmyssl.com/").GetResponse();
var body = new StreamReader(response.GetResponseStream()).ReadToEnd();

Fakat şuan bizim çalıştığımı proje ne yazıkki .Net 4.0

4.0 için de örnek kodumuz

ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
ServicePointManager.DefaultConnectionLimit = 9999;

İyi çalışmalar.

 

 



Query column type alma

clock Kasım 14, 2017 13:56 by author OzgurOzvaris

Merhaba Arkadaşlar,

Kaynak : https://stackoverflow.com/questions/20107827/insert-data-into-temp-table-with-query

Entityframe work kullanıyorsanız şöyle bir ihtiyacınız olacaktır. Bazen karmaşık sql sorgu üzerinden rapor almanız gerekecektir. Bu durumda uzun select query'i entity framework'e çevirmek çok ta mantıklı değildir. Öyle ise mevcut sorgularınızı Context.ExecuteStoreQuery<cListType> methodu ile classlara çevirmeniz gerekmektedir. Bu durumda eğer sorgunuzun çok fazla kolonu var ise bu kolonların class karşılıklarının hangi tiple olması gerektiğini teker teker bilmeniz gerekmektedir. Bu işlemi tek tek yapmak istemiyorsanız aşağıdaki yöntem işinize yarayacaktır.

SELECT TOP 10 *
INTO #TempTable
FROM <DataSource>
Then use:

EXEC tempdb.dbo.sp_help N'#TempTable';
or

SELECT * 
FROM tempdb.sys.columns 
WHERE [object_id] = OBJECT_ID(N'tempdb..#TempTable');

istediğini kolon tipleri bilgisini aldıktan sonra

DROP TABLE #TempTable

sql scripti ile temp tabloyu silebilirsiniz.

İyi çalışmalar.



Hakkımızda  AboneOl 

Blog Yayınımıza Hoşgeldiniz.

Month List

RecentPosts

Sign In