16 Nisan 2014 Çarşamba

Android'den Mssql Bağlantı Yapılması

Android cihazınızdan mssql bağlantısı kurmak istiyorsanız aşağıdaki adımları yapmalısınız..

İlk olarak jTDS – SQL Server and Sybase JDBC Driver’ı indirin. http://sourceforge.net/projects/jtds/

Sonra projenize girip, bunu external jar dosyası olarak kütüphane olarak ekleyin. (Project->Properties->Java Build Path->Add External Jars)

Gerisi basit.

Örnek olarak tablodaki ismi textviewe yazdırmak şu şekilde olacaktır.
try
{
TextView tv = (TextView) findViewById(R.id.textView1); 
Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
Connection conn = DriverManager.getConnection("jdbc:jtds:sqlserver://10.0.0.1:1433", "user", "pwd");
Statement query = conn.createStatement(); 
ResultSet rs = query .executeQuery("select * from DBNAME.dbo.tableName where soyisim='Kıraş'"); 
String yazi = ""; 
while (rs.next()) {
 
yazi = rs.getString("adi");
 
}
 
tv.setText(yazi);
 
conn.close();
 
} catch (Exception e) {
 
e.printStackTrace();
 
}

Veya aşağıdaki kod ile çözebilirsiniz
try {
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
        Connection conn =DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=msdibya;user=dibya;password=dibya;");                   

        System.out.println("connected");
        Statement statement=conn.createStatement();
        ResultSet resultSet=statement.executeQuery("select * from [user]");
        while(resultSet.next()){
            System.out.println(" "+resultSet.getString(1)+" "+resultSet.getNString(2));
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

28 Mart 2014 Cuma

MSSQL Databasi üzerinde Kelime Aramak

Database Üzerinde bir kelime aramak için aşağıdaki Store Procedure kodunu kullanabilirsiniz.

CREATE PROC SearchAllTables
(
    @SearchStr nvarchar(100)
)
AS
BEGIN

-- Copyright © 2014 Sencer BELGE. Tum Hakları Saklıdır.
-- Tanım: Bütün tablolarda ve Kolonlarda arama yapar
-- Yazar: Sencer BELGE
-- Site: http://sencerbelge.blogspot.com.tr/

DECLARE @Results TABLE(ColumnName nvarchar(370), ColumnValue nvarchar(3630))

SET NOCOUNT ON

DECLARE @TableName nvarchar(256), @ColumnName nvarchar(128), @SearchStr2 nvarchar(110)
SET  @TableName = ''
SET @SearchStr2 = QUOTENAME('%' + @SearchStr + '%','''')

WHILE @TableName IS NOT NULL
BEGIN
    SET @ColumnName = ''
    SET @TableName = 
    (
        SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))
        FROM    INFORMATION_SCHEMA.TABLES
        WHERE       TABLE_TYPE = 'BASE TABLE'
            AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName
            AND OBJECTPROPERTY(
                    OBJECT_ID(
                        QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)
                         ), 'IsMSShipped'
                           ) = 0
    )

    WHILE (@TableName IS NOT NULL) AND (@ColumnName IS NOT NULL)
    BEGIN
        SET @ColumnName =
        (
            SELECT MIN(QUOTENAME(COLUMN_NAME))
            FROM    INFORMATION_SCHEMA.COLUMNS
            WHERE       TABLE_SCHEMA    = PARSENAME(@TableName, 2)
                AND TABLE_NAME  = PARSENAME(@TableName, 1)
                AND DATA_TYPE IN ('char', 'varchar', 'nchar', 'nvarchar')
                AND QUOTENAME(COLUMN_NAME) > @ColumnName
        )

        IF @ColumnName IS NOT NULL
        BEGIN
            INSERT INTO @Results
            EXEC
            (
                'SELECT ''' + @TableName + '.' + @ColumnName + ''', LEFT(' + @ColumnName + ', 3630) 
                FROM ' + @TableName + ' (NOLOCK) ' +
                ' WHERE ' + @ColumnName + ' LIKE ' + @SearchStr2
            )
        END
    END 
END

SELECT ColumnName, ColumnValue FROM @Results
END

30 Ocak 2014 Perşembe

UZAK MASAÜSTÜ BAĞLANTILARINDA KOPYALA YAPIŞTIR YAPILAMAMASI - COPY AND PASTE IS NOT WORKING ON MY REMOTE DESKTOP CONNECTION…

Neyse ki sorunu düzeltmek oldukça basittir ve birkaç basit adımdan oluşur.
  1. Sunucudaki görev yöneticisi açılır.
  2. İşlemler sekmesine geçilir.
  3. rdpclip.exe seçilir.
  4. İşlemi sonlandıra tıklanır.
  5. Uygulamalar sekmesine geçilir.
  6. Yeni Göreve tıklanır.
  7. rdpclip yazılır.
  8. Tamama tıklanır.

28 Ocak 2014 Salı

Oluşturduğumuz Stored Procedure'lere Tüm Veritabanlarından Erişebilmek

SQL Serverda Stored Procedure, fonksiyon gibi objeler veritabanı seviyesinde olup sadece oluşturulduğu veritabanında kullanılabilirler. Eğer farklı bir veritabanına bağlı iken başka bir veritabanındaki objeye erişmek istersek ilgili objenin adının başına veritabanı adını da eklememiz gerekiyor. Aksi takdirde "Invalid object name '%.*ls'" hatasını alırız. Fakat özellikle SQL Serverın built-in sistem stored procedure ve fonksiyonlarını çalıştırırken veritabanı adı vermeksizin herhangi bir veritabnından ilgili objeye erişebiliyoruz.
İhtiyaç duyulduğu takdirde bir stored procedure bir kere oluşturulup veritabanı adı vermeden herhangi veritabanından çağrılabilir. Bunun için oluşturacağımız stored procedure'u master veritabanında ve "sp_" önekini kullanarak oluşturmamız yeterli olacaktır.
Şimdi bunu basit bir örnek üzerinde görelim. Örneğimizde öncelikle bir stored procedure yazıp ilgili stored procedure içinde şuanki aktif çalışma veritabanımızın adını ekran yazdıralım.
1use master
2go
3create proc sp_getdbname
4as
5select DB_NAME(db_id())


Yukarıdaki gibi master veritabanında “sp_” ön eki ile oluşturduğumuz stored procedure bir kaç veritabanında doğrudan çalıştıralım.
01use master
02go
03exec sp_getdbname
04 
05 
06use AdventureWorks2012
07go
08exec sp_getdbname
09 
10 
11use BtakademiSQLProg
12go
13exec sp_getdbname



Yukarıdaki sorgularımız çıktısına baktığımızda stored procedure’un sadece master veritabanında oluşturulmasına rağmen farklı veritabanlarından da veritabanı adı belirtilmeden erişilebilmektedir. Bu şekilde bir stored procedure’un tüm var olan veriatablanlarından erişilmesini istiyorsak bunu “sp_” ön eki ile master veritabanında oluşturmamız yeterli olacaktır.

Bu şekilde kullanımda dikkat etmemiz gereken nokta ise veritabanımızı başka bir SQL Server’a restore ettiğimizde master veritabanını da restore etmediğimiz sürece artık bu şekilde oluşturduğumuz stored procedure’lere erişmeyeceğiz.

Belirtilen DSN'de Sürücü ile Uygulama arasında bir mimari uyuşmazlığı var Çözümü

C:\Windows\SysWOW64\odbcad32.exe 64bit işletim sistemlerinde odbc ayarları buradan yapılmakta Odbcnizi Bu yolu İzleyerek Yaparsanız Sorun ortadan Kalkıcaktır.