2017-03-01 8 views
0

職場で私たちは多くのアプリケーションを使用しています。その多くはアプリケーション自体のための独自のサーバーと、SSMSで管理できるそのアプリケーションのデータベース用の独立したサーバーを持っています。アプリケーションはSQL Serverデータベースにどのように接続しますか?

私は、アプリケーションがSQL Serverデータベースにどのように接続するのかを知りたいと思っていましたか?たとえば、アプリケーションに情報を入力する場合、アプリケーション自体とは異なるサーバー上のデータベースにどのように更新され、配置されますか?

+1

これはページに答える非常に広い質問です。これらのアプリケーションがどのようなプログラミング言語で書かれているか知っていますか? – Ethilium

+0

私はまだよく慣れていない複数のアプリケーションがあるので、あまりにも確信が持てません。私はすべての人に共通の道があると思った。 – bingaloman

答えて

0

自分の好みや基準に応じて、これを実装し、アプリケーションに異なるインタフェースを提示します接続してサーバーへのSQL照会を実行します。私はあなたがSSMSを使用しているため、あなたの会社は完全な.Netスタックであると仮定します。私はデモ用のプログラミング言語としてC#を使用します。これは高いレベルの説明であり、ベストプラクティスとして使用することはできません。

アプリケーションでは、SQLクエリを実行するには接続文字列と実行されるSQLコマンドの2つが必要です。以下はサンプルコードです。

...(other code)... 

string queryS = @"Update myTable Set sqlField = 'datatoupdate' Where otherSqlField = 'whyweareupdatingthisrow'"; 
string connS = @"Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;"; 

CreateCommand(queryS, connS); 


private static void CreateCommand(string queryString, 
    string connectionString) 
{ 
    using (SqlConnection connection = new SqlConnection(
       connectionString)) 
    { 
     SqlCommand command = new SqlCommand(queryString, connection); 
     command.Connection.Open(); 
     command.ExecuteNonQuery(); 
    } 
} 

「queryS」はクエリ文字列です。 SSMSを使用したことに慣れていることを前提としています。

「connS」には接続文字列が含まれています。これは、アプリケーションが接続を開いて、データベースでSQLクエリを実行できるようにするものです。その中には、サーバー名とデータベース名が提供されていることと、必要な資格情報(SSMS経由でデータベースにアクセスするために使用されている資格情報)が表示されます。これにより、アプリケーションは異なるサーバー上のデータベースにアクセスすることができます。これは一般的な接続文字列であり、other parameters can be passed into it as wellであることに注意してください。

残りのロジックは、接続を開き、クエリを実行する関数を呼び出します。

C#を使用したSQLクエリに関する追加情報はhereです。

+0

これは、アプリケーション内で、ユーザーがフロントエンドとやりとりしたときにどこに接続し、データベース内のどのフィールドを更新するのかを示すかなりのコードなのですか? – bingaloman

+0

正確に。更新されたデータをUI(フロントエンド)から送信すると、そのデータはクエリ文字列に渡される変数またはパラメータとして返されます。 – Ethilium

+0

私は今、理解してくれたことを間違いなく明確にしました! – bingaloman

1

SQL Serverには、最終的にネットワーク経由でサーバーに接続するために使用されるTDS:Tabular Data Streamというプロトコルがあります。

いくつかの異なるドライバが、私はどのようにプログラマを説明しようと、@Cadeルーの答えのオフピギーバックするためなど

https://docs.microsoft.com/en-us/sql/connect/sql-server-drivers

関連する問題