SQL Server İki Tablo Arası Update

Aşağıdaki script ile farklı tablolardan update işlemi yapılabilir


   UPDATE T1
   SET UPDATEALAN = T2.VERIALANI
   FROM UPDATETABLO T1
   JOIN VERITABLO T2
   ON T1.[UPDATEESLESMEALANI] = T2.VERIESLESME ALANI



Birden fazla alanı güncellemek için ise SET alanınındaki yerleri virgül ile ayırarak birden fazla alanı güncelleyebiliriz

       SET UPDATEALAN = T2.VERIALANI , UPDATEALAN2 = T2.VERIALANI2 , UPDATEALAN3 = T2.VERIALANI3
SQL Server Link Server Oluşturma
exec sp_addlinkedserver @server='LinkServerADI', @srvproduct='', @provider='SQLOLEDB', @datasrc='SERVERADI'
exec sp_addlinkedsrvlogin 'LinkServerADI', 'False', Null, 'SQLKullanıcı', 'SQLŞifre'


Script Çalıştırıldıktan sonra

Link server oluşturduğumuz serverdaki tabloları aşağı komut ile görüntüleyebiliriz

select * from LinkServerADI.Database.dbo.Tablo
SQL Server Log Dosyası Küçültme

Sql Server daki ldf dosyalarının boyutlarını aşağıdaki script ile küçültebiliriz

USE   DatabaseName
ALTER DATABASE  DatabaseName
SET RECOVERY SIMPLE
GO


USE   DatabaseName
DBCC SHRINKFILE (DatabaseName_Log, 500)  --- Buradaki 500 yazısı log dosyasının küçültüleceği boyutudur bu örnek de  500 mb olarak küçültülür
GO

USE   DatabaseName
ALTER DATABASE  DatabaseName
SET RECOVERY FULL
GO
E-Fatura QR Code Ekleme

E-Fatura xlst template dosyamıza qr code ekleyebiliriz. Bunun için bir web api yada base64 e çevrilmiş bir qrcode resmi kullanmamız gerekir

Gösteceğim örnek dinamik gelen bir qrcode verisini web api kullanarak qrcode u base64 olarak alıp e-fatura dosyasında göstereceğiz .

	<img>
		  <xsl:attribute name="src"> https://api.qrserver.com/v1/create-qr-code/?data=https://www.ahmetaydinlik.com&amp;size=150x150</xsl:attribute>
		  <xsl:attribute name="height">150</xsl:attribute>
		  <xsl:attribute name="width">150</xsl:attribute>
	</img>

xsl:attribute komutu ile image nesnemin özelliklerini atıyorum.

eğer burada dinamik bir veri dönüştürmek isteseydik src verimizin içeriğini değiştirirek api serverdaki data parametresine dinamik verimizi eklersek istediğimiz veriyi bize 150px boyutunda bir qrcode oluşturur

ekran görüntüsü

aşağıdaki komut ile örneğe bakabilirsiniz


&lt;img>
     &lt;xsl:attribute name="src"> https://api.qrserver.com/v1/create-qr-code/?data=&lt;xsl:for-each select="//n1:DespatchAdvice/cbc:Note[2]">&lt;xsl:value-of select="."/>&lt;/xsl:for-each>&amp;amp;size=150x150&lt;/xsl:attribute>
	 &lt;xsl:attribute name="height">150&lt;/xsl:attribute>
	 &lt;xsl:attribute name="width">150&lt;/xsl:attribute>
&lt;/img>


Burada e-fatura xml dosyasında gelen not 2 deki veriyi qrcode a yerleştirdik

E-Fatura Not Alanından Veri Alma

E-Fatura xslt template dosyasında not alanlarına yazılmış olan notlardan belirli karakterler arasında veri almak için aşağıdaki komutu kullanabiliriz

     <xsl:for-each select="//n1:DespatchAdvice/cbc:Note[3]">									 
	      <xsl:value-of select="substring-before(substring(.,0,21),'#')"/>	
	 </xsl:for-each>


Yukarıda yazılı olan substring-before komutu ile not alanında gelen kelimin 0 ıncı karakterinden başyalıp 21 inci karaktere kadar yazmasını istedik

Asp SQL Injection Temizleme function
Function Temizle(strVeri)
	If strVeri = "" Then Exit Function

	strVeri = Replace(strVeri, "&lt;", "&amp;amp;lt;")
	strVeri = Replace(strVeri, ">", "&amp;amp;gt;")
	strVeri = Replace(strVeri, "[", "&amp;amp;#091;")
	strVeri = Replace(strVeri, "]", "&amp;amp;#093;")
	strVeri = Replace(strVeri, """", "", 1, -1, 1)
	strVeri = Replace(strVeri, "=", "&amp;amp;#061;", 1, -1, 1)
	strVeri = Replace(strVeri, "'", "''", 1, -1, 1)
	strVeri = Replace(strVeri, "Select", "sel&amp;amp;#101;ct", 1, -1, 1)
	strVeri = Replace(strVeri, "join", "jo&amp;amp;#105;n", 1, -1, 1)
	strVeri = Replace(strVeri, "union", "un&amp;amp;#105;On", 1, -1, 1)
	strVeri = Replace(strVeri, "where", "wh&amp;amp;#101;re", 1, -1, 1)
	strVeri = Replace(strVeri, "insert", "ins&amp;amp;#101;rt", 1, -1, 1)
	strVeri = Replace(strVeri, "Delete", "del&amp;amp;#101;te", 1, -1, 1)
	strVeri = Replace(strVeri, "Update", "up&amp;amp;#100;ate", 1, -1, 1)
	strVeri = Replace(strVeri, "Like", "lik&amp;amp;#101;", 1, -1, 1)
	strVeri = Replace(strVeri, "drop", "dro&amp;amp;#112;", 1, -1, 1)
	strVeri = Replace(strVeri, "create", "cr&amp;amp;#101;ate", 1, -1, 1)
	strVeri = Replace(strVeri, "modify", "Mod&amp;amp;#105;fy", 1, -1, 1)
	strVeri = Replace(strVeri, "rename", "ren&amp;amp;#097;Me", 1, -1, 1)
	strVeri = Replace(strVeri, "alter", "alt&amp;amp;#101;r", 1, -1, 1)
	strVeri = Replace(strVeri, "cast", "ca&amp;amp;#115;t", 1, -1, 1)
	
	Temizle = strVeri

End Function
Asp Sql Server uygun tarih çevirme function
Function TarihDondur(tarih)
			tarihParcalar = Split(tarih, ".")
			Dim gun
			gun = FormatNumber(tarihParcalar(0), 0)
			If Len(gun) = 1 Then
				gun = "0" & gun
			End If
			Dim ay
			ay = FormatNumber(tarihParcalar(1), 0)
			If Len(ay) = 1 Then
				ay = "0" & ay
			End If
			Dim yil
			yil = tarihParcalar(2)
			TarihDondur =  yil& "-" & ay & "-" & gun
	 	
	end function 

Kullanımı

  <%= TarihDondur("29.10.1986")%>
  Ekran Çıktısı : 1986-10-29 

Asp Türkçe karakter temizleme scripti
 Function Turkce(strveri)
	If strVeri = "" Then Exit Function
		strVeri = Replace(strVeri, "ç", "&#231;")
		strVeri = Replace(strVeri, "ı", "&#305;")
		strVeri = Replace(strVeri, "ğ", "&#287;")
		strVeri = Replace(strVeri, "ö", "&#246;")
		strVeri = Replace(strVeri, "ş", "&#351;")
		strVeri = Replace(strVeri, "ü", "&#252;")
		strVeri = Replace(strVeri, "Ç", "&#199;")
		strVeri = Replace(strVeri, "İ", "&#304;")
		strVeri = Replace(strVeri, "Ğ", "&#286;")
 		strVeri = Replace(strVeri, "Ö", "&#214;")
		strVeri = Replace(strVeri, "Ş", "&#350;")
		strVeri = Replace(strVeri, "Ü", "&#220;")
		turkce = strveri
 End Function 

Karakter Kodları Listesi

Aşağıdaki tabloda HTML kodları içinde kullanılabilecek ISO Latin-1 karakter seti dahilindeki isimlendirilmiş karakter girişleri gösterilmektedir. Listede sık kullanılan bazı önemli işaretlerin/karakterlerin açıklamaları kalın olarak belirtilmiştir.

KarakterDesimal Koduİsimlendirilmiş GirişAçıklama
&#34;&quot;Çift Tırnak İşareti (Quotation mark)
&&#38;&amp;VE İşareti (Ampersand)
&#60;&lt;Küçüktür (Less than)
&#62;&gt;Büyüktür (Greater than)
 &#160;&nbsp;[Kesintisiz] Boşluk (Nonbreaking space)
¡&#161;&iexcl;Ters Ünlem İşareti (Inverted exclamation)
¢&#162;&cent;Sent İşareti (Cent sign)
£&#163;&pound;Sterlin İşareti (Pound sterling)
¤&#164;&curren;? General currency sign
¥&#165;&yen;[Japon] Yen İşareti (Yen sign)
¦&#166;&brvbar; veya &brkbar;Kesintili Dikey Çizgi (Broken vertical bar)
§&#167;&sect;Bölüm/Kısım İşareti (Section sign)
¨&#168;&uml; veya &die;? Diæresis / Umlaut
©&#169;&copy;Telif Hakkı (Copyright)
ª&#170;&ordf;Feminine ordinal
«&#171;&laquo;Sol guillemet (Left angle quote, guillemet left)
¬&#172;&notDeğil İşareti (Not sign)
&#173;&shy;Tire/Eksi İşareti (Soft hyphen)
®&#174;&reg;Marka İşareti (Registered trademark)
¯&#175;&macr; veya &hibar;Macron accent
°&#176;&deg;Derece İşareti (Degree sign)
±&#177;&plusmn;Artı veya Eksi İşareti (Plus or minus)
²&#178;&sup2;Üssü 2 İşareti (Superscript two)
³&#179;&sup3;Üssü 3 İşareti (Superscript three)
´&#180;&acute;Acute accent
µ&#181;&micro;Mikro İşareti (Micro sign)
&#182;&para;Paragraf İşareti (Paragraph sign)
·&#183;&middot;Middle dot
¸&#184;&cedil;Cedilla
¹&#185;&sup1;Üssü 1 İşareti (Superscript one)
º&#186;&ordm;Masculine ordinal
»&#187;&raquo;Sağ Guillemet (Right angle quote, guillemet right)
¼&#188;&frac14;1 Bölü 4 (Fraction one-fourth)
½&#189;&frac12;1 Bölü 2 (Fraction one-half)
¾&#190;&frac34;3 Bölü 4 (Fraction three-fourths)
¿&#191;&iquest;Ters Soru İşareti (Inverted question mark)
À&#192;&Agrave;Capital A, grave accent
Á&#193;&Aacute;Capital A, acute accent
Â&#194;&Acirc;Capital A, circumflex
Ã&#195;&Atilde;Capital A, tilde
Ä&#196;&Auml;Capital A, diæresis / umlaut
Å&#197;&Aring;Capital A, ring
Æ&#198;&AElig;Capital AE ligature
Ç&#199;&Ccedil;Capital C, cedilla
È&#200;&Egrave;Capital E, grave accent
É&#201;&Eacute;Capital E, acute accent
Ê&#202;&Ecirc;Capital E, circumflex
Ë&#203;&Euml;Capital E, diæresis / umlaut
Ì&#204;&Igrave;Capital I, grave accent
Í&#205;&Iacute;Capital I, acute accent
Î&#206;&Icirc;Capital I, circumflex
Ï&#207;&Iuml;Capital I, diæresis / umlaut
Ð&#208;&ETH;Capital Eth, Icelandic
Ñ&#209;&Ntilde;Capital N, tilde
Ò&#210;&Ograve;Capital O, grave accent
Ó&#211;&Oacute;Capital O, acute accent
Ô&#212;&Ocirc;Capital O, circumflex
Õ&#213;&Otilde;Capital O, tilde
Ö&#214;&Ouml;Capital O, diæresis / umlaut
×&#215;&times;Multiply sign
Ø&#216;&Oslash;Capital O, slash
Ù&#217;&Ugrave;Capital U, grave accent
Ú&#218;&Uacute;Capital U, acute accent
Û&#219;&Ucirc;Capital U, circumflex
Ü&#220;&Uuml;Capital U, diæresis / umlaut
Ý&#221;&Yacute;Capital Y, acute accent
Þ&#222;&THORN;Capital Thorn, Icelandic
ß&#223;&szlig;Small sharp s, German sz
à&#224;&agrave;Small a, grave accent
á&#225;&aacute;Small a, acute accent
â&#226;&acirc;Small a, circumflex
ã&#227;&atilde;Small a, tilde
ä&#228;&auml;Small a, diæresis / umlaut
å&#229;&aring;Small a, ring
æ&#230;&aelig;Small ae ligature
ç&#231;&ccedil;Small c, cedilla
è&#232;&egrave;Small e, grave accent
é&#233;&eacute;Small e, acute accent
ê&#234;&ecirc;Small e, circumflex
ë&#235;&euml;Small e, diæresis / umlaut
ì&#236;&igrave;Small i, grave accent
í&#237;&iacute;Small i, acute accent
î&#238;&icirc;Small i, circumflex
ï&#239;&iuml;Small i, diæresis / umlaut
ð&#240;&eth;Small eth, Icelandic
ñ&#241;&ntilde;Small n, tilde
ò&#242;&ograve;Small o, grave accent
ó&#243;&oacute;Small o, acute accent
ô&#244;&ocirc;Small o, circumflex
õ&#245;&otilde;Small o, tilde
ö&#246;&ouml;Small o, diæresis / umlaut
÷&#247;&divide;Bölü İşareti (Division sign)
ø&#248;&oslash;Small o, slash
ù&#249;&ugrave;Small u, grave accent
ú&#250;&uacute;Small u, acute accent
û&#251;&ucirc;Small u, circumflex
ü&#252;&uuml;Small u, diæresis / umlaut
ý&#253;&yacute;Small y, acute accent
þ&#254;&thorn;Small thorn, Icelandic
ÿ&#255;&yuml;Small y, diæresis / umlaut
Php Verot.net Multi Upload

Verot.net sınıfı ile php + html ile multi dosya yükleme scripti

Html Form Kodu

	<form action="?P=TGonder" id="Form1"  method="POST"  enctype="multipart/form-data">
							<table data-role="table" id="table-column-toggle" class="ui-table table-stripe" data-mode="toggle" style="margin:0px;padding:0px;">
								<tbody>
									
									<tr >
										<td ><strong>Dosyaları Seçin</strong></td>
										<td  colspan="2"><input type="file"  id="resim[]"  name="resim[]" multiple /></td>	
									</tr>								
								</tbody>
							</table>

							<input type="submit" value="Talebi Gönder" name="btn_kaydet" data-icon="check" data-theme="a" data-rel="external" data-ajax="false">
						</form> 

Php Kodu

if(isset($_POST['btn_kaydet'])) 
{
	require 'class.upload.php'; // Verot Upload Dosyası
	$resimler = array();
	foreach ($_FILES['resim'] as $k => $a) 
	{
		foreach ($a as $i => $v) 
		{
			if (!array_key_exists($i, $resimler))
			$resimler[$i] = array();
			$resimler[$i][$k] = $v;
	   }
	}
	foreach ($resimler as $resim) 
	{
		$handle = new Upload($resim);
		if ($handle->uploaded) 
		{
			if ($handle->processed) 
			{
				$handle->file_new_name_body = rand(0,99999999999999); // rastgele isim veriyiliyor
				$Yil = date('Y');
				$Gun = date('d');
		    	$Aylar = array('Ocak','Şubat','Mart','Nisan','Mayıs','Haziran','Temmuz','Ağustos','Eylül','Ekim','Kasım','Aralık'); // Yil - Gün ve Ay bazlı klasörleme işlemi yapılıyor
			    $Ay = $Aylar[date('m') - 1];
			    $yol = 'uploads/'.$Yil.'/'.seo_url($Ay).'/'.$Gun.'/'.$PID.'/';
		        $handle->Process($yol ); 
                echo $handle->file_dst_name ; // yüklenen dosyanın ismi
			}
		}
	}

Yüklenen dosya ile detaylı işlemler için https://www.verot.net/php_class_upload_samples.htm sitesini inceleyebilirsiniz