SQL Server Trigger Listesi

Aşağıdaki script Sql server attachlı olan tüm database lerdeki trigger ların listesini verir

DECLARE @sql NVARCHAR(MAX) = N'';

SELECT @sql = @sql + '
USE ' + QUOTENAME(name) + ';

IF EXISTS (SELECT 1 FROM sys.triggers WHERE is_ms_shipped = 0)
BEGIN
    SELECT
        ''' + name + ''' AS DatabaseName,
        s.name AS SchemaName,
        o.name AS ObjectName,
        o.type_desc AS ObjectType,
        tr.name AS TriggerName,
        tr.is_instead_of_trigger,
        tr.is_disabled,
        tr.create_date,
        tr.modify_date
    FROM sys.triggers tr
    JOIN sys.objects o ON tr.parent_id = o.object_id
    JOIN sys.schemas s ON o.schema_id = s.schema_id
    WHERE tr.is_ms_shipped = 0
      AND (
            tr.is_instead_of_trigger = 1
            OR OBJECT_DEFINITION(tr.object_id) LIKE ''%INSERT%''
            OR OBJECT_DEFINITION(tr.object_id) LIKE ''%DELETE%''
          );
END
'
FROM sys.databases
WHERE state = 0
AND database_id > 4;

EXEC sp_executesql @sql;

Delphi İle TCMB den Döviz Kurlarını Çekme

Aşağıdaki procedure de USD ve EURO kuru çekilmiştir

Kurlar diye bir adet memory table oluşturulmuştur

Kurlar Memory Table Field Yapısı
object Kurlar: TJvMemoryData

FieldName = ‘DOVTUR’
DataType = ftString
Size = 100

FieldName = ‘KUR’
DataType = ftFloat


	Procedure DovizKurlari;
	var
		XMLNode: IXMLNode;
		I: Integer;
		XMLDocumentKur: TXMLDocument;
	Begin
		XMLDocumentKur := TXMLDocument.Create(Application);
		try
			try
				XMLDocumentKur.Active := false;
				XMLDocumentKur.FileName := 'https://www.tcmb.gov.tr/kurlar/today.xml';
				XMLDocumentKur.Active := true;
			Except  on E: Exception do
			Begin
				Msg_HataMesaji('İnternet bağlantınızı kontrol edin. TCMB günlük kur bilgisine ulaşılamadı!');
			end;
		end;

		Kurlar.Open;
		Kurlar.EmptyTable;
	
		if XMLDocumentKur.Active then
		Begin
			XMLNode := XMLDocumentKur.DocumentElement.ChildNodes.FindNode('Currency');
			repeat
				if XMLNode.HasAttribute('CurrencyCode') then
				begin
					if (XMLNode.Attributes['CurrencyCode'] = 'USD') then
					begin
						Kurlar.Append;
							KurlarDOVTUR.AsString := 'USD';
							KurlarKUR.AsFloat := StrToFloatDef(StringReplace(XMLNode.ChildNodes.Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]), 0);
							DolarKuru := StrToFloatDef(StringReplace(XMLNode.ChildNodes.Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]), 0);
						Kurlar.Post;
					end
					else if (XMLNode.Attributes['CurrencyCode'] = 'EUR') then
					begin
						Kurlar.Append;
							KurlarDOVTUR.AsString := 'EURO';
							KurlarKUR.AsFloat := StrToFloatDef(StringReplace(XMLNode.ChildNodes.Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]), 0);
							EuroKuru := StrToFloatDef(StringReplace(XMLNode.ChildNodes.Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]), 0);
						Kurlar.Post;
					end;
				end;
				XMLNode := XMLNode.NextSibling;
			until XMLNode = nil;
			End
			Else
			Begin
				if Msg_Soru('USD ve EURO Kurunu Elle Tanımlamak İster misiniz ? ') then
				Begin
					Kurlar.Append;
						KurlarDOVTUR.AsString := 'USD';
						KurlarKUR.AsFloat     := StrToFloatDef(InputBox('','USD Kurunu Giriniz','1'),1);
						DolarKuru             :=  KurlarKUR.AsFloat;
					Kurlar.Post;

					Kurlar.Append;
						KurlarDOVTUR.AsString := 'EURO';
						KurlarKUR.AsFloat     := StrToFloatDef(InputBox('','EURO Kurunu Giriniz','1'),1);
						EuroKuru              := KurlarKUR.AsFloat ;
					Kurlar.Post;
				End
				Else
				Begin
					Kurlar.Append;
						KurlarDOVTUR.AsString := 'USD';
						KurlarKUR.AsFloat     := 1;
						DolarKuru             := 1;
					Kurlar.Post;

					Kurlar.Append;
						KurlarDOVTUR.AsString := 'EURO';
						KurlarKUR.AsFloat     := 1;
						EuroKuru              := 1;
					Kurlar.Post;
				End;
		    End;
		finally
			XMLDocumentKur.Free;
		end;
	End;
Resim Base-64 Dönüştürücü v1.0

Bu çevirici tarafımca geliştirilmiş olup , online olarak resim dosyalarını base64 kodu olarak size verir.

Temel Özellikleri

  • Drag&Drop (Sürükle Bırak ) Resim Yükleme
  • Çoklu Resim Yükleme Desteği
  • Ayrı Ayrı Resim Yükleme (Önceki resim kodları kaybolmaz)
  • Tüm Resimlerin base-64 kodunu txt olarak indirebilme
  • Ücretsizdir
  • Ücretsizdir.

Uygulama v1.0 olduğu için eksiklikler ve hatalar olabilir bu durumlarda ahmet.aydinlik@yahoo.com.tr adresine mail atarak bildirebilirsiniz en kısa zamanda çözüme kavusturmaya çalışırım.

Uygulama Linki

Resim Base-64 Dönüştürücü v1.0

Online XSLT Editör

Bu editör tarafımca geliştirilmiş olup , online olarak e-fatura irsaliye gibi e-belgeleri düzenlemek ve görüntülemek için kullanılır

Başlıca Özellikleri

  • Xslt ve Xml Yükleme Desteği
  • Yüklenen xlst dosyası üzerinde değişiklik , kayıt ve indirebilme desteği
  • Anlık Canlı görüntüleme
  • Editör renk desteği
  • CTRL + F ile kod arama
  • Ücretsizdir.

Uygulama v1.0 olduğu için eksiklikler ve hatalar olabilir bu durumlarda ahmet.aydinlik@yahoo.com.tr adresine mail atarak bildirebilirsiniz en kısa zamanda çözüme kavusturmaya çalışırım.

Uygulama Linki

Online XSLT Editör

Android Hedef Target Android 12 Hatası Çözümü

android:exported needs to be explicitly specified for element <activity#com.embarcadero.firemonkey.FMXNativeActivity>. Apps targeting Android 12 and higher are required to specify an explicit value for android:exported when the corresponding component has an intent filter defined. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.

Bu hata mesajı, Delphi 12.3 ile Android 12 veya üzeri sürümler için uygulama geliştirirken, AndroidManifest.xml dosyanızda bazı activity öğelerinde android:exported niteliğinin eksik olduğunu bildiriyor.

Sorun Nedir?

Android 12 (API 31) itibarıyla, bir Activity, Service veya BroadcastReceiver bileşeni eğer bir intent-filter içeriyorsa, android:exported niteliğinin açıkça tanımlanması zorunludur. Bu nitelik, bileşenin uygulama dışından erişilebilir olup olmadığını belirler.

hatanda belirtilen öğe:

<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity" ...>

Bu aktivite bir intent-filter içerdiği için, artık android:exported özelliğini içermesi gerekiyor.

Ne Yapmalısın?

  1. AndroidManifest.template.xml dosyanı aç.
  2. Aşağıdaki gibi FMXNativeActivity için tanımlı activity öğesini bul:
<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
          android:label="@string/app_name"
          android:configChanges="orientation|keyboardHidden|screenSize"
          android:launchMode="singleTop">

Bu satıra android:exported="true" (veya gerektiğinde false) ekle:

<activity android:name="com.embarcadero.firemonkey.FMXNativeActivity"
          android:label="@string/app_name"
          android:configChanges="orientation|keyboardHidden|screenSize"
          android:launchMode="singleTop"
          android:exported="true">

Bu şekilde düzenleme yapıldığında hata ortadan Kalkar

Js Tablo yazdırma Scripti

Html Sayfalarda bir tablo id ile tetiklendiğinde tablo içeriğini yazdırmaya aktaran script

<script>
function PrintTable(tabloId) {
    let table = document.querySelector(tabloId);
    if (!table) {
        console.error("Tablo bulunamadı: " + tabloId);
        return;
    }

    let printWindow = window.open('', '', 'width=800,height=600');
    printWindow.document.write('<html><head><title>Tablo Yazdır</title>');
    printWindow.document.write('<style>');
    printWindow.document.write('table { border-collapse: collapse; width: 100%; }');
    printWindow.document.write('th, td { border: 1px solid black; padding: 8px; text-align: left; }');
    printWindow.document.write('</style></head><body>');
    
    printWindow.document.write(table.outerHTML); // Sadece tablonun içeriğini ekler
    printWindow.document.write('</body></html>');
    
    printWindow.document.close();
    printWindow.print();
}
</script>

Örnek Kullanımı

	<button onclick="PrintTable('#Tablo1')">Yazdır</button>