13 Ocak 2015 Salı

SQL'de Detach/Attach İşlemleri

Bir MDF ve LDF dosyasından oluşan veritabanı, VTYS sistemine bağlı iken sistem dosyaların taşınmasına izin vermez Bu durumda dosyalar önce sistemden "Detach" ile ayrılmalı, daha sonra tekrar istenen başka bir sunucuda "Attach" edilmelidir.

Detach İşlemi


Detach yapılmak istenen veritabanına sağ tıklanır ve Tasks / Detach ile Detach Database ekranı açılır.

Veritabanı sistemden ayrılırken, aktif bağlantılar otomatik kapatılsın mı?  (Drop Connections) Eğer bu seçenek seçilmezse ve aktif bağlantılar varsa, veritabanı ayrılması gerçekleşmeyecektir.

Attach İşlemi
Sistemden ayrılan veritabanına ait MDF ve LDF dosyasının yeri gösterilecek, istenen herhangi bir SQL Server sunucusuna tanıtılabilir.  


Attach yapılmak istenen veritabanı dosyası için Databases sağ tıklanır ve Attach ile Attach Databases ekranı açılır. Açılan ekranda Add butonu ile Attach edilmek istenen VT eklenir OK butonuna tıklanır. OK tuşuna tıkladıktan sonra Database Server'a eklenmiş oldu Server da bunu görmek için Object Explorer penceresinden Refresh işlemi yapılmalıdır.

12 Ocak 2015 Pazartesi

C Programlama Yapılar (Structures)

Herkese selamlar bu makalemde C Programlama Dilinde önemli bir yeri olan Yapılar (Structures) hakkında bildiklerimi paylaşmak istiyorum. 

Yapılar (structures) içinde aynı veya farklı veri tipinde birden fazla eleman saklayabildiğimiz bileşik veri tipidir. Programlarımızda değişkenleri kullandığımız için büyük önemleri vardır. Örneğin dizilerde hafızada bir takım yerler açılır, bu hafıza kısımlarını doldururken belirlemiş olduğunuz değişken tipinin dışına çıkamayız...işte yapılar saysesinde farklı veri tiplerinde birden fazla eleman saklayabiliriz.

struct insan{
       string isim;
       float boy;
       int kilo;
}insan birey; //birey nesnesi

Eğer veri tipi tanımlamayıp sadece değişken tanımlamak istiyorsak bunu şu şekilde gerçekleştirebiliriz;

struct {
       string isim;
       float boy;
       int kilo;
}birey; 

Yapılara İlk Değer Atama : Tüm değişkenlere yapabildiğimiz gibi yapı değişkenlerine de tanımları sırasında ilk değer ataması yapabiliriz.
insan birey={"ibrahim bayraktar",1,74,100}; //birey yapı değişkeni

Yapı Elemanlarına Erişim: Yapıda yer alan elemanlara, nokta (.) operatörü ile erişebiliriz.
yapıDegiskeni.elemanAdı

Örnek :
cout<<kitap1.isim;
kitap1.yayinyili+=5;
if(kitap1.baski>35)...

kitaplar kitap1,kitap2;
cin>>kitap1.isim>>kitap1.yayinyili>>kitap1.baski;
kitap2=kitap1;

Yapı Elemanlarına Erişim Örnek :
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <iostream>

using namespace std;
struct rasyonel_erisim //yapiyi tanımliyoruz.
{
int pay, payda;
};
int main(int argc, char *argv[])
{
    rasyonel_erisim sayi1,sayi2,sonuc;
    cout<<"1.Sayinin Pay ve Paydasini Giriniz:";
    cin>>sayi1.pay>>sayi1.payda;  //burada sayilar okunuyor
    cout<<"2.Sayinin Pay ve Paydasini Giriniz:";
    cin>>sayi2.pay>>sayi2.payda; 
    sonuc.pay=sayi1.pay * sayi2.pay;
    sonuc.payda=sayi1.payda*sayi2.payda; //pay ve paydaları carpiyoruz
    cout<< sayi1.pay<<"/"<<sayi1.payda<<" x ";
    cout<< sayi2.pay<<"/"<<sayi2.payda<<" = ";
    cout<<sonuc.pay<<"/"<<sonuc.payda<<endl; //sonucu yazdiriyoruz
    getch();
}

İç İçe Structures: Bir yapının elemanı başka bir yapı olabilir. Bu durumdaki yapılara iç içe yapı (nested structures) adı verilir.

struct tarih {
       string ay;
       int yil,gun;
}; 
struct insan {
       string isim;
       float boy;
       int  kilo;
       struct tarih dogumTarihi;
};
insan icice;
icice.dogumtarihi.gun=17;

İç İçe Structures Örnek :
#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <iostream>

using namespace std;

struct personelBilgi {
    char * isim;
    char * soyisim;
    char * Egitim;

  };

struct personelKayit{
  char * kayitYapanPersonel;
  char * kayitTarihi;
  struct personelBilgi personel;
};

int main(){

  struct personelKayit pk001;

  pk001.kayitYapanPersonel="Ibrahim BAYRAKTAR";
  pk001.kayitTarihi="12.01.2015";
  pk001.personel.isim="FISTIKCI";
  pk001.personel.soyisim="SAHAP";
  pk001.personel.Egitim="Lisans";

  printf("Kayit Islemini Yapan Personel: %s\n", pk001.kayitYapanPersonel);
  printf("Kayit Tarihi: %s\n", pk001.kayitTarihi);

  printf("Personel Isim: %s\n", pk001.personel.isim);
  printf("Personel Soyisim: %s\n", pk001.personel.soyisim);
  printf("Personel Egitim Duzeyi: %s\n", pk001.personel.Egitim);

  getch();
}

C Programlama Dizi Örnekleri

Örnek 1: 10 tamsayıyı 10 elemanlı bir diziye okuyup içlerinden negatif olanları negatif isimli bir diziye, pozitif olanlarını pozitif isimli diziye atan program.


#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <iostream>

using namespace std;
void yazdir(int[], int);
int main(int argc, char *argv[])
{
    int sayilar[10], pozitif[10], negatif[10];
    int poz=0, neg=0;
    cout<<"10 Sayi Giriniz: ";
    for (int i=0; i<10;i++)
    {
        cin>>sayilar[i];
        if (sayilar[i]>0) pozitif[poz++]=sayilar[i];
        else if (sayilar[i]<0) negatif[neg++]=sayilar[i];        
    }
    cout<<"Girilen Sayilar: ";
    yazdir(sayilar,10);
    cout<<"Pozitif Sayilar: ";
    yazdir(pozitif,poz);
    cout<<"Negatif Sayilar: ";
    yazdir(negatif,neg);
    getch();
}
void yazdir(int a[], int boy)
{
     for (int j=0; j<boy;j++)
         cout<<a[j]<<" ";cout<<endl;
}   
 
Örnek 2: Birincisi 3 karakterden oluşan, ikincisi 6 karakterden oluşan iki kelimeyi iki diziye okutuyoruz. İlk kelimenin tüm harflerinin ikinci kelimede olup olmadığını ekrana yazdıralım.

#include <stdio.h>
#include <conio.h>
#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    char birincikelime[3], ikincikelime[6];
    bool buldum=true;
    cout<<"Birinci Kelimeyi Giriniz: ";
    cin>>birincikelime;
    cout<<"Ikinci Kelimeyi Giriniz: ";
    cin>>ikincikelime;
    for (int i=0; i<3&&buldum;i++)
    {
        buldum=false;
        for(int j=0; j<6&&!buldum;j++)
        if (birincikelime[i]==ikincikelime[j]) buldum=true;
    }
    if (buldum) cout<<birincikelime<<" kelimesinin tum harfleri "<<ikincikelime<<" kelimesinde bulunmustur.";
    else cout<<birincikelime<<" kelimesinin tum harfleri"<<ikincikelime<<" kelimesinde bulunamamistir.";
    
    getch();
}


29 Aralık 2014 Pazartesi

Java Random kullanarak Sayısal Loto Örnek

package ORNEK14;
import java.util.Random; // random sayı üretmek için gerekli sınıf
import java.util.Scanner; // kullanıcıdan girdi almak için kullanılan sınıf

public class SAYISAL_LOTO {
    
public static void main(String[] args) {
                      
 Scanner s = new Scanner(System.in); // Scanner sınıfından değişkenimizi üretiyoruz
 System.out.println("KAÇ KOLON OYNAYACAKSINIZ?(1/8)");
 int kolonsayisi = s.nextInt(); // Değeri kolon sayısı olarak kullanalım.
 int kolon[][] = new int[8][6];

 for(int i=0;i<kolonsayisi;i++ ){
     for(int j=0;j<6;j++ ){
         Random rnd = new Random();
         int sayi=1+rnd.nextInt(49);
         if(sayi!=kolon[i][j]){ // Aynı kolondaki sayılar farklı olmalı.
         kolon[i][j]=sayi;
         }
     }
 }
 System.out.println("Oynanan Kolonlar:");

 for(int i=0;i<kolonsayisi;i++ ){
     System.out.println("");

     for(int j=0;j<6;j++ ){
        
         System.out.print(  kolon[i][j] + "  ");
        
     }
 }

     }
 }

9 Kasım 2014 Pazar

SQL Server 2012 "Edit Top 200 Rows" Satır Sayısını Değiştirme

SQL Server'da tablodaki verileri görmek ve editlemek istediğimizde "Edit Top 200 Rows"u açarız, fakat tablolarımızdaki verilen kimi zaman 200'den fazla olabiliyor. 


"Edit Top 200 Rows" sınırını arttırmak  için SQL Server'da neler yapabiliriz?

"Edit Top 200 Rows" seçeneğinde varsayılan değer 200 olan satır sayısını değiştirelim ve bütün tablolara sağ tıkladığımızda "Edit Top 2000 Rows" yapalım.  Menü araç çubuğundan Tools-Options'a giriyoruz.


Açılacak olan Options penceresinde "SQL Server Object Explorer"a tıklıyoruz.


Options penceresinde sağ kısımda "Value for Edit Top <n> Rows command" satırındaki 200'ü 2000 olarak değiştiriyoruz. Artık SQL Server'da hangi tabloya sağ tıklarsak "Edit Top 2000 Rows" olarak değiştiğini görebiliriz. 


Not: Options penceresinde "Value for Edit Top <n> Rows command" altında bulunan "Value for Select Top <n> Rows command" seçeneğinden de "Select Top 1000 Rows" değişikliğinide yapabiliriz.

Eğerki bu değişikliği SQL Server için varsayılan bir değer değilde belirli bir tabloda geçici olarak yapmak istiyorsak Tablomuzun üzerine sağ tıklayıp "Edit Top 200 Rows" açıyoruz. Tablomuz edit modunda açıldıktan sonra toolbardan "Show SQL Pane" butonuna tıklıyoruz.

Query ekranına tabloyu 200 satır olarak edit modda açan SQL kodu gelecek. Bu kodda 200 yazan yeri değiştirerek toolbardan "Execute SQL" butonuna tıklıyoruz.

Copyright 2013-2017 | İbrahim BAYRAKTAR /dev/null Web Günlüğü