Ok... nakon nekoliko sati trazenja po msdn-u uspeo sam da dobijem ono sto sam trazio
Ako jos neko bude imao slicnih problema, ovde moze naci resenje (delimicno).
Ideja je da se svaka tabela alteruje dodavanjem timestamp kolone radi pracenja poslednje promene u tabeli.
Kod u c# koji hendla refresh bazira se na kreiranju run-time TableAdapter-a i DataTable-a koji se popunjavaju samo slogovima koji su promenjeni od poslednjeg ucitavanja podataka sa komandom Fill.
Code:
private void RefreshData()
{
dynamic row = ((DataRowView)(this.cvsMaster.View.CurrentItem)).Row;
string MyConString = "SERVER=server_ip;" +
"DATABASE=database_name;" +
"UID=user;" +
"PASSWORD=password;";
string sql = "SELECT ID, NAZIV, TIME FROM MASTER WHERE TIME > '" + vreme + "'";
using (MySqlConnection connection = new MySqlConnection(MyConString))
{
connection.Open();
using (MySqlCommand cmdSel = new MySqlCommand(sql, connection))
{
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter(cmdSel);
da.Fill(dt);
ds.MASTER.Merge(dt, false);
cvsMaster.View.Refresh();
vreme = now_TA.GetNow();
}
connection.Close();
}
}
Konkretna promena vrednosti se radi pozivom komande
Merge
Napomena - promenjiva
vreme "cuva" vreme servera u momentu poziva Fill-a, a puni se preko :
Code:
SELECT CAST( now() as CHAR) as NOW; //zbog konvertovanja datuma u VS izgledalo je jednostavnije
// da se vreme vrati kao string
Ovo resenje radi za sve INSERT, UPDATE akcije na tabeli, ali problem ostaje za DELETE. Ako neko ima ideju kako ovaj primer moze da se modifikuje da bi obuhvatio i DELETE, molim vas da postujete.