Visual Studio 2015でapache cordovaとionic フレームワークを使用してハイブリッド アプリを作成しています。
アプリをazure sql や google cloud sql などのクラウド sql データベースに接続したいと考えています。
挿入、更新、および選択を実行できる必要があります。
私が調査したことから、PHPを使用する必要があるかもしれないことは理解していますが、良い例は見つかりませんでした. どんな助けでも大歓迎です。
Visual Studio 2015でapache cordovaとionic フレームワークを使用してハイブリッド アプリを作成しています。
アプリをazure sql や google cloud sql などのクラウド sql データベースに接続したいと考えています。
挿入、更新、および選択を実行できる必要があります。
私が調査したことから、PHPを使用する必要があるかもしれないことは理解していますが、良い例は見つかりませんでした. どんな助けでも大歓迎です。
kuhner 氏によると、Cordova は Node.js フレームワークです。確かに Node.js で Azure SQL Database を使用できます。選択したプラットフォームを使い始めるのに役立つ優れたドライバー オプションが
多数
あります。
簡単なコード サンプルを次に示します。
var Connection = require('tedious').Connection;
var config = {
userName: 'yourusername',
password: 'yourpassword',
server: 'yourserver.database.windows.net',
// When you connect to Azure SQL Database, you need these next options.
options: {encrypt: true, database: 'AdventureWorks'}
};
var connection = new Connection(config);
connection.on('connect', function(err) {
// If no error, then good to proceed.
console.log("Connected");
executeStatement();
});
var Request = require('tedious').Request;
var TYPES = require('tedious').TYPES;
function executeStatement() {
request = new Request("SELECT c.CustomerID, c.CompanyName,COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC;", function(err) {
if (err) {
console.log(err);}
});
var result = "";
request.on('row', function(columns) {
columns.forEach(function(column) {
if (column.value === null) {
console.log('NULL');
} else {
result+= column.value + " ";
}
});
console.log(result);
result ="";
});
request.on('done', function(rowCount, more) {
console.log(rowCount + ' rows returned');
});
connection.execSql(request);
}
Azure SQL DB の使用を開始するには、https ://azure.microsoft.com/en-us/documentation/articles/sql-database-get-started/ のリンクに従ってください。
MSDN 概念実証リンク https://msdn.microsoft.com/library/mt715784.aspx
ステップ 1: 接続 新しい接続関数を使用して、SQL データベースに接続します。JavaScript
var Connection = require('tedious').Connection;
var config = {
userName: 'yourusername',
password: 'yourpassword',
server: 'yourserver.database.windows.net',
// If you are on Microsoft Azure, you need this:
options: {encrypt: true, database: 'AdventureWorks'}
};
var connection = new Connection(config);
connection.on('connect', function(err) {
// If no error, then good to proceed.
console.log("Connected");
});
ステップ 2: クエリを実行する すべての SQL ステートメントは、新しい Request() 関数を使用して実行されます。select ステートメントなどのステートメントが行を返す場合は、request.on() 関数を使用してそれらを取得できます。行がない場合、request.on() 関数は空のリストを返します。JavaScript
var Connection = require('tedious').Connection;
var config = {
userName: 'yourusername',
password: 'yourpassword',
server: 'yourserver.database.windows.net',
// When you connect to Azure SQL Database, you need these next options.
options: {encrypt: true, database: 'AdventureWorks'}
};
var connection = new Connection(config);
connection.on('connect', function(err) {
// If no error, then good to proceed.
console.log("Connected");
executeStatement();
});
var Request = require('tedious').Request;
var TYPES = require('tedious').TYPES;
function executeStatement() {
request = new Request("SELECT c.CustomerID, c.CompanyName,COUNT(soh.SalesOrderID) AS OrderCount FROM SalesLT.Customer AS c LEFT OUTER JOIN SalesLT.SalesOrderHeader AS soh ON c.CustomerID = soh.CustomerID GROUP BY c.CustomerID, c.CompanyName ORDER BY OrderCount DESC;", function(err) {
if (err) {
console.log(err);}
});
var result = "";
request.on('row', function(columns) {
columns.forEach(function(column) {
if (column.value === null) {
console.log('NULL');
} else {
result+= column.value + " ";
}
});
console.log(result);
result ="";
});
request.on('done', function(rowCount, more) {
console.log(rowCount + ' rows returned');
});
connection.execSql(request);
}
ステップ 3: 行を挿入する この例では、INSERT ステートメントを安全に実行し、SQL インジェクションの脆弱性からアプリケーションを保護するパラメーターを渡し、自動生成された主キー値を取得する方法を示します。JavaScript
var Connection = require('tedious').Connection;
var config = {
userName: 'yourusername',
password: 'yourpassword',
server: 'yourserver.database.windows.net',
// If you are on Azure SQL Database, you need these next options.
options: {encrypt: true, database: 'AdventureWorks'}
};
var connection = new Connection(config);
connection.on('connect', function(err) {
// If no error, then good to proceed.
console.log("Connected");
executeStatement1();
});
var Request = require('tedious').Request
var TYPES = require('tedious').TYPES;
function executeStatement1() {
request = new Request("INSERT SalesLT.Product (Name, ProductNumber, StandardCost, ListPrice, SellStartDate) OUTPUT INSERTED.ProductID VALUES (@Name, @Number, @Cost, @Price, CURRENT_TIMESTAMP);", function(err) {
if (err) {
console.log(err);}
});
request.addParameter('Name', TYPES.NVarChar,'SQL Server Express 2014');
request.addParameter('Number', TYPES.NVarChar , 'SQLEXPRESS2014');
request.addParameter('Cost', TYPES.Int, 11);
request.addParameter('Price', TYPES.Int,11);
request.on('row', function(columns) {
columns.forEach(function(column) {
if (column.value === null) {
console.log('NULL');
} else {
console.log("Product id of inserted item is " + column.value);
}
});
});
connection.execSql(request);
}