การเรียกใช้งาน Call เป็นการเรียกผ่าน
MySQL Database ซึ่งสามารถร่วมกับ
PHP ,
Visual Basic (VB.Net) , JDBC และ Visual C# ได้
โค้ด: เลือกทั้งหมด
DROP PROCEDURE IF EXISTS getCustomer;
DELIMITER //
CREATE PROCEDURE getCustomer(IN pCountryCode VARCHAR(2))
BEGIN
SELECT * FROM customer WHERE COUNTRY_CODE = pCountryCode;
END //
DELIMITER ;
ตัวอย่างการเรียกใช้ด้วย PHP :
- โดยการใช้ฟังก์ชั่น ของ mysqli ซึ่งสามารถใช้คำสั่ง Call ได้ทันที
โค้ด: เลือกทั้งหมด
<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "root";
$userPassword = "root";
$dbName = "mydatabase";
$conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);
$sql = "CALL getCustomer('US')";
$query = mysqli_query($conn,$sql);
?>
โค้ด: เลือกทั้งหมด
<?php
while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))
{
?>
ตัวอย่างการเรียกใช้ด้วย Visual Basic (VB.Net) :
- โดยการ Imports MySql.Data.MySqlClient ซึ่งสามารถใช้คำสั่ง Call ได้ทันที
โค้ด: เลือกทั้งหมด
Imports MySql.Data.MySqlClient
Imports System.Data
Module MyModule
Sub Main()
Dim objConn As New MySqlConnection()
Dim objCmd As New MySqlCommand()
Dim dtAdapter As New MySqlDataAdapter()
Dim ds As New DataSet()
Dim dt As DataTable
Dim strConnString As String, strSQL As String
strConnString = "Server=localhost;User Id=root; Password=root; Database=mydatabase; Pooling=false"
strSQL = "CALL getCustomer('US')"
objConn.ConnectionString = strConnString
objConn.Open()
objCmd.Connection = objConn
objCmd.CommandText = strSQL
objCmd.CommandType = CommandType.Text
dtAdapter.SelectCommand = objCmd
dtAdapter.Fill(ds)
dt = ds.Tables(0)
For i As Integer = 0 To dt.Rows.Count - 1
Console.Write(dt.Rows(i)("CUSTOMER_ID"))
Console.Write(" - ")
Console.Write(dt.Rows(i)("NAME"))
Console.Write(" - ")
Console.Write(dt.Rows(i)("EMAIL"))
Console.Write("")
Next
dtAdapter = Nothing
objConn.Close()
objConn = Nothing
End Sub
End Module
ตัวอย่างการเรียกใช้ด้วย JDBC :
- โดยการใช้ com.mysql.jdbc.Driver ซึ่งสามารถใช้คำสั่ง Call ได้ทันที
โค้ด: เลือกทั้งหมด
public static void main(String[] args) {
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
s = connect.createStatement();
String CountryCode = "US";
String sql = "CALL getCustomer('" + CountryCode + "') ";
ResultSet rec = s.executeQuery(sql);
while((rec!=null) && (rec.next()))
{
System.out.print(rec.getString("CUSTOMER_ID"));
System.out.print(" - ");
System.out.print(rec.getString("NAME"));
System.out.print(" - ");
System.out.print(rec.getString("EMAIL"));
System.out.println("");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Close
try {
if(connect != null){
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
ตัวอย่างการเรียกใช้ด้วย Visual C# :
- โดยการใช้ MySql.Data.MySqlClientr ซึ่งสามารถใช้คำสั่ง Call ได้ทันที
โค้ด: เลือกทั้งหมด
static void Main(string[] args)
{
MySqlConnection objConn = new MySqlConnection();
MySqlCommand objCmd = new MySqlCommand();
MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
DataSet ds = new DataSet();
DataTable dt;
String strConnString, strSQL;
strConnString = "Server=localhost;User Id=root; Password=root; " +
"Database=mydatabase; Pooling=false";
strSQL = "CALL getCustomer('US')";
objConn.ConnectionString = strConnString;
objConn.Open();
objCmd.Connection = objConn;
objCmd.CommandText = strSQL;
objCmd.CommandType = CommandType.Text;
dtAdapter.SelectCommand = objCmd;
dtAdapter.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
Console.Write(dt.Rows[i]["CUSTOMER_ID"]);
Console.Write(" - ");
Console.Write(dt.Rows[i]["NAME"]);
Console.Write(" - ");
Console.Write(dt.Rows[i]["EMAIL"]);
Console.Write("");
}
dtAdapter = null;
objConn.Close();
objConn = null;
}
[b]การเรียกใช้งาน Call[/b] เป็นการเรียกผ่าน [url=https://www.mindphp.com/forums/viewtopic.php?f=74&t=36147]MySQL Database[/url] ซึ่งสามารถร่วมกับ [url=https://www.mindphp.com/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B8%AD%E0%B8%AD%E0%B8%99%E0%B9%84%E0%B8%A5%E0%B8%99%E0%B9%8C/%E0%B8%9A%E0%B8%97%E0%B9%80%E0%B8%A3%E0%B8%B5%E0%B8%A2%E0%B8%99-php.html]PHP[/url] , [url=https://www.mindphp.com/%E0%B8%84%E0%B8%B9%E0%B9%88%E0%B8%A1%E0%B8%B7%E0%B8%AD/73-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/3637-visual-basic-net-%E0%B8%A7%E0%B8%B4%E0%B8%8A%E0%B8%A7%E0%B8%A5%E0%B9%80%E0%B8%9A%E0%B8%AA%E0%B8%B4%E0%B8%81%E0%B8%94%E0%B8%AD%E0%B8%97%E0%B9%80%E0%B8%99%E0%B9%87%E0%B8%95-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3.html]Visual Basic[/url] (VB.Net) , JDBC และ Visual C# ได้
[code]DROP PROCEDURE IF EXISTS getCustomer;
DELIMITER //
CREATE PROCEDURE getCustomer(IN pCountryCode VARCHAR(2))
BEGIN
SELECT * FROM customer WHERE COUNTRY_CODE = pCountryCode;
END //
DELIMITER ;[/code]
[img]http://snap.mindphp.com/index.php?view=2017Jun30_5956130253b06[/img]
[b]ตัวอย่างการเรียกใช้ด้วย PHP :[/b]
[list]โดยการใช้ฟังก์ชั่น ของ mysqli ซึ่งสามารถใช้คำสั่ง Call ได้ทันที[/list]
[code]<?php
ini_set('display_errors', 1);
error_reporting(~0);
$serverName = "localhost";
$userName = "root";
$userPassword = "root";
$dbName = "mydatabase";
$conn = mysqli_connect($serverName,$userName,$userPassword,$dbName);
$sql = "CALL getCustomer('US')";
$query = mysqli_query($conn,$sql);
?>[/code]
[code]<?php
while($result=mysqli_fetch_array($query,MYSQLI_ASSOC))
{
?>[/code]
[code]<?php
mysqli_close($conn);
?>[/code]
[b]ตัวอย่างการเรียกใช้ด้วย Visual Basic (VB.Net) :[/b]
[list]โดยการ Imports MySql.Data.MySqlClient ซึ่งสามารถใช้คำสั่ง Call ได้ทันที[/list]
[code]Imports MySql.Data.MySqlClient
Imports System.Data
Module MyModule
Sub Main()
Dim objConn As New MySqlConnection()
Dim objCmd As New MySqlCommand()
Dim dtAdapter As New MySqlDataAdapter()
Dim ds As New DataSet()
Dim dt As DataTable
Dim strConnString As String, strSQL As String
strConnString = "Server=localhost;User Id=root; Password=root; Database=mydatabase; Pooling=false"
strSQL = "CALL getCustomer('US')"
objConn.ConnectionString = strConnString
objConn.Open()
objCmd.Connection = objConn
objCmd.CommandText = strSQL
objCmd.CommandType = CommandType.Text
dtAdapter.SelectCommand = objCmd
dtAdapter.Fill(ds)
dt = ds.Tables(0)
For i As Integer = 0 To dt.Rows.Count - 1
Console.Write(dt.Rows(i)("CUSTOMER_ID"))
Console.Write(" - ")
Console.Write(dt.Rows(i)("NAME"))
Console.Write(" - ")
Console.Write(dt.Rows(i)("EMAIL"))
Console.Write("")
Next
dtAdapter = Nothing
objConn.Close()
objConn = Nothing
End Sub
End Module[/code]
[b]ตัวอย่างการเรียกใช้ด้วย JDBC :[/b]
[list]โดยการใช้ com.mysql.jdbc.Driver ซึ่งสามารถใช้คำสั่ง Call ได้ทันที[/list]
[code]public static void main(String[] args) {
Connection connect = null;
Statement s = null;
try {
Class.forName("com.mysql.jdbc.Driver");
connect = DriverManager.getConnection("jdbc:mysql://localhost/mydatabase" +
"?user=root&password=root");
s = connect.createStatement();
String CountryCode = "US";
String sql = "CALL getCustomer('" + CountryCode + "') ";
ResultSet rec = s.executeQuery(sql);
while((rec!=null) && (rec.next()))
{
System.out.print(rec.getString("CUSTOMER_ID"));
System.out.print(" - ");
System.out.print(rec.getString("NAME"));
System.out.print(" - ");
System.out.print(rec.getString("EMAIL"));
System.out.println("");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// Close
try {
if(connect != null){
s.close();
connect.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
[/code]
[b]ตัวอย่างการเรียกใช้ด้วย Visual C# :[/b]
[list]โดยการใช้ MySql.Data.MySqlClientr ซึ่งสามารถใช้คำสั่ง Call ได้ทันที[/list]
[code]using MySql.Data.MySqlClient;[/code]
[code]
static void Main(string[] args)
{
MySqlConnection objConn = new MySqlConnection();
MySqlCommand objCmd = new MySqlCommand();
MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
DataSet ds = new DataSet();
DataTable dt;
String strConnString, strSQL;
strConnString = "Server=localhost;User Id=root; Password=root; " +
"Database=mydatabase; Pooling=false";
strSQL = "CALL getCustomer('US')";
objConn.ConnectionString = strConnString;
objConn.Open();
objCmd.Connection = objConn;
objCmd.CommandText = strSQL;
objCmd.CommandType = CommandType.Text;
dtAdapter.SelectCommand = objCmd;
dtAdapter.Fill(ds);
dt = ds.Tables[0];
for (int i = 0; i <= dt.Rows.Count - 1; i++)
{
Console.Write(dt.Rows[i]["CUSTOMER_ID"]);
Console.Write(" - ");
Console.Write(dt.Rows[i]["NAME"]);
Console.Write(" - ");
Console.Write(dt.Rows[i]["EMAIL"]);
Console.Write("");
}
dtAdapter = null;
objConn.Close();
objConn = null;
}
[/code]