Truyền db giữa SQL 2000 và PPC

khoatran

GÂY DỰNG
NHẬP HỘI
1 Tháng tư 2007 lúc 02:06
#1
. Chào các pác, tui là lập trình viên VB và tui ko bít về cách kết nối giữa PPC và SQL2K, đọc nhiều trên "thới" thấy mấy bác chỉ nhưng tui ko hiểu rõ cho lắm. tui có vài thắc mắc như sao :
1. Từ PPC mình có thể kết nối trực tiếp đến server SQL2K như các máy PC bình thường hay ko ? (Chỉ cần khai mấy cái ADO và Recordset như thường lệ ?, tui có làm thử nhưng hình như nó ko cho kết nối trực tiếp, và trên các thread cũng ko có nói đến việc này.
2. Kết với SQL2K từ PPC thì mình có cách duy nhất là Phài dùng DB trung gian trên SQL-CE rồi sau đó mình mới dùng PUSH và PULL để truyền DB đến SQL2K ? Đó là giải pháp duy nhất à ?
3. Các pác có thể gời cho tui 1 ví dụ cụ thể mà mình có thể select,insert,update,delete từ PPC đến DB trên SQL2K, email mywebcalls@yahoo.com
Cám ơn các pác đã đọc tin và rất mong sự giúp đỡ của các pác.
 

mkford

GẮN KẾT
GÂY DỰNG
6 Tháng tư 2007 lúc 14:18
#3
Cách thức để tương tác giữa PPC và hệ cơ sở dữ liệu SQL 2000, SQL 2005 bạn phải dùng qua SQL CE, SQL Mobile với cơ chế đồng bộ qua SQL CE, SQL Mobile thôi, không có kết nối trực tiếp.
Tặng bạn đoạn code viết bằng C# ( VB.Net bạn làm tương tự...)
1. Kết nối DB tới file dữ liệu (.sdf trên thiết bị )

private bool ConnectDirectoryDatabase(String sCode)
{
if (DirectoryConnection != null)
DirectoryConnection.Dispose();
string ConnectionString;
if (!File.Exists(DataPath + "0" + sCode + ".sdf"))
{
return false;

}
ConnectionString = "Data Source = " + DataPath + "0" + sCode + ".sdf";
ConnectionString += "; Password ='" + "pass" + "';";
try
{
DirectoryConnection = new SqlCeConnection(ConnectionString);
}
catch (SqlCeException)
{
return false;
}
return (DirectoryConnection != null);
}

Truy vấn dữ liệu:


public bool Searching(SqlCeConnection conn,String sCode, String sName, String sNumber, String sAddress,bool bExtractly, List<SubcriberInfo> foundResult)
{
private SqlCeDataAdapter DBAdapter = null;
private DataSet DBDataSet = null;
private DataTable DBTable = null;
DBDataSet = new DataSet(TableName);
DataRow[] DBRows;
try
{
DBAdapter = new SqlCeDataAdapter("SELECT _NAME,ADDRESS,NUMBER FROM " + TableName + WhereClause, conn);
DBAdapter.Fill(DBDataSet, TableName);
DBTable = DBDataSet.Tables[TableName];
DBRows = DBTable.Select();
}
catch (SqlCeException)
{
MessageBox.Show("Có lỗi trong quá trình truy xuất dữ liệu, hãy kiểm tra lại bộ nhớ hoặc điều kiện tìm kiếm");
if (DBDataSet!=null) DBDataSet.Dispose();
if (DBTable!=null) DBTable.Dispose();
if (DBAdapter!=null) DBAdapter.Dispose();
conn.Dispose();
return false;
}

if (DBRows.Length < 1)
{
DBTable.Dispose();
DBAdapter.Dispose();
DBDataSet.Dispose();
conn.Dispose();
return false;
for (int i = 0; i < DBRows.Length; i++)
{
SubcriberInfo sub;
sub = new SubcriberInfo(i, DBRows["_NAME"].ToString() , DBRows ["ADDRESS"].ToString() , DBRows["NUMBER"].ToString() , Convert.ToInt32(sCode), "");
foundResult.Add(sub);

}
DBTable.Dispose();
DBAdapter.Dispose();
DBDataSet.Dispose();
conn.Dispose();
return foundResult.Count >0 ;

}

Cụ thể hơn trong help của SQL Mobile 2005 hướng dẫn bạn step by step để kết nối, truy vấn đồng bộ, mình cũng ko có time để hướng dẫn chi tiết lại, bạn chịu khó tìm hiểu nhé!

Đoạn code trên được copy từ ứng dụng myPocketDirectory 1.03 hoạt động tốt!
__________________
 

Bài viết cần bạn xem thêm

Bây giờ là thời đại của công nghệ, internet, smartphone, tablet, máy tính, robot,... vân vân. Thì nó cũng ảnh hưởng rất nhiều đến con người kể cả người già và trẻ em.
Mỗi gia đình bây giờ đều cho con nhỏ sử dụng các thiết bị điện tử như điện thoại, m ...
Lazada Vietnam Master card on Monday