Nakonec jsem původní SW zrušil a naslouchám na podařilo se mi komunikovat přes telnet s váhou, takže jsem ten SW nahradil :)
Příspěvky odeslané z IP adresy 78.157.163.–
Asi máš pravdu, zkusím nastudovat ty triggery a RPC :)
Děkuji ti mnohokrát (i ostatním) za cenné info a pohled dalších osob :)
Ještě jednou díky
Ten právě nemám .. Dal by se ale dát zjistit pomocí Wiresharku ? Případně jiným způsobem ?
Přesně tak, podle mě bude nejlepší se jak říkáš nabořit do otevřeného portu :) Teď akorát otázka, server je ta váha a sw který data čte klient nebo opačně ?
No on je problém v tom, že jsem ukládání do SQL nastaivil dodatečně (v configu softwaru, který získává data), on si to primárně ukládá do texťáku. V configu nastavuji IP váhy, tzn. váha vysílá na své IP data a onen SW od výrbce váhy (ne můj) ty data čte. Netuším jak je to ale řešeno, takto máme dodaný SW a HW od jednoho výrobce.
Pro upřesnění příkládám ilustrační obrázek jak to je. Napadlo mě, jestli se dá nějakým způsobem napojit přímo na tu váhu, kde bude naslouchat můj SW stejně jako SW výrobce oné váhy.
Je to klasické HW tlačítko na zařízení,které, když se zmáčkne odešle data na IP adresu s portem 27 (nebo 23 teď si nejsem jistý) do aplikace, která poslouchá na oné IP adrese.
Ještě me napadlo ,,odposlouchávat" tu komunikaci na té IP adrese, kam jdou data ze zařízení (váhy). Dá se to nějak ?
Každopádně ti děkuji za info :)
Zápis do SQL provádí právěže jiná aplikace, což je právě ten problém :(
Dávat selectování na každou sekundu je asi prasárna a zahltím tím celou databázi.
Používám jinak MS SQL
#3 MichaelXX
Kód:
public void Obnov_data() {
string constring = @"Data Source=xxxxxxxx";
string query = "select TOP 10 * FROM xxxxxxx ORDER BY create_datetime desc, scaling_id desc ";
SqlConnection con = new SqlConnection(constring);
SqlDataAdapter ada = new SqlDataAdapter(query, con);
DataTable dt = new DataTable();
ada.Fill(dt);
//float celkem = 0;
DataRow dr = dt.Rows[0];
created_9.Text = dr["create_datetime"].ToString();
netto_9.Text = dr["_weight"].ToString() + " kg";
brutto_9.Text = dr["brutto"].ToString() + " kg";
tara_9.Text = dr["tara"].ToString() + " kg";
carriage_9.Text = dr["carriage"].ToString();
scaleid_9.Text = dr["scaling_id"].ToString();
// celkem+= float.Parse(dr["_weight"].ToString());
dr = dt.Rows[1];
created_8.Text = dr["create_datetime"].ToString();
netto_8.Text = dr["_weight"].ToString() + " kg";
brutto_8.Text = dr["brutto"].ToString() + " kg";
tara_8.Text = dr["tara"].ToString() + " kg";
carriage_8.Text = dr["carriage"].ToString();
scaleid_8.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
dr = dt.Rows[2];
created_7.Text = dr["create_datetime"].ToString();
netto_7.Text = dr["_weight"].ToString() + " kg";
brutto_7.Text = dr["brutto"].ToString() + " kg";
tara_7.Text = dr["tara"].ToString() + " kg";
carriage_7.Text = dr["carriage"].ToString();
scaleid_7.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
dr = dt.Rows[3];
created_6.Text = dr["create_datetime"].ToString();
netto_6.Text = dr["_weight"].ToString() + " kg";
brutto_6.Text = dr["brutto"].ToString() + " kg";
tara_6.Text = dr["tara"].ToString() + " kg";
carriage_6.Text = dr["carriage"].ToString();
scaleid_6.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
dr = dt.Rows[4];
created_5.Text = dr["create_datetime"].ToString();
netto_5.Text = dr["_weight"].ToString() + " kg";
brutto_5.Text = dr["brutto"].ToString() + " kg";
tara_5.Text = dr["tara"].ToString() + " kg";
carriage_5.Text = dr["carriage"].ToString();
scaleid_5.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
dr = dt.Rows[5];
created_4.Text = dr["create_datetime"].ToString();
netto_4.Text = dr["_weight"].ToString() + " kg";
brutto_4.Text = dr["brutto"].ToString() + " kg";
tara_4.Text = dr["tara"].ToString() + " kg";
carriage_4.Text = dr["carriage"].ToString();
scaleid_4.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
dr = dt.Rows[6];
created_3.Text = dr["create_datetime"].ToString();
netto_3.Text = dr["_weight"].ToString() + " kg";
brutto_3.Text = dr["brutto"].ToString() + " kg";
tara_3.Text = dr["tara"].ToString() + " kg";
carriage_3.Text = dr["carriage"].ToString();
scaleid_3.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
dr = dt.Rows[7];
created_2.Text = dr["create_datetime"].ToString();
netto_2.Text = dr["_weight"].ToString() + " kg";
brutto_2.Text = dr["brutto"].ToString() + " kg";
tara_2.Text = dr["tara"].ToString() + " kg";
carriage_2.Text = dr["carriage"].ToString();
scaleid_2.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
dr = dt.Rows[8];
created_1.Text = dr["create_datetime"].ToString();
netto_1.Text = dr["_weight"].ToString() + " kg";
brutto_1.Text = dr["brutto"].ToString() + " kg";
tara_1.Text = dr["tara"].ToString() + " kg";
carriage_1.Text = dr["carriage"].ToString();
scaleid_1.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
dr = dt.Rows[9];
created_0.Text = dr["create_datetime"].ToString();
netto_0.Text = dr["_weight"].ToString() + " kg";
brutto_0.Text = dr["brutto"].ToString() + " kg";
tara_0.Text = dr["tara"].ToString() + " kg";
carriage_0.Text = dr["carriage"].ToString();
scaleid_0.Text = dr["scaling_id"].ToString();
// celkem += Int32.Parse(dr["_weight"].ToString());
// sum_netto.Text = celkem.ToString() + " kg";
}
Ahoj,
děkuji za info.
Každopádně nepoužívám datagridview, protože se mi nepodařilo naformátovat podle svých představ (vzhled).
Řeším to tedy přes klasické labely - viz kód.
Tedy, potřebuji zajistit to, aby se tato funkce spustila v případě, že se vloží řádek do tabulky.
Na netu jsem našel pouze SQLDependency, ale nepodařilo se mi to rozjet :(
Jsou tedy nějaké jiné způsoby ?
Děkuji
Děkuji, přesně toto jsem potřeboval :)
Jde mi o to, že na základě hodnoty (ID_oddeleni) bych chtěl mít v TableA přímo název oddělení. Nejlépe, kdyby se hodnota doplnila sama. Já tam vyplním id oddělení a tím se mi doplní sám název oddělení. Zatím jsem to vyřešil přes trigger, kde mám, že při vložení nového řádku se mi hodnota do názvu oddělení vyplní, mám to tám ale natvrdo:
ALTER TRIGGER autofill ON TableA AFTER INSERT AS
UPDATE report SET nazev_oddeleni='Udrzba' WHERE id_oddeleni = '1' ..
Je možné zařídit čistějším způsobem, aby se to takto vkládalo ? Mám tedy představu, že v jedné tabulce budu mít zadefinovaná čísla oddělení a k nim přiřazený název, v druhé tabulce bych měl data viz výše, s tím, že by se při vytváření řádku (ručně) vyplnilo ID oddělení a na základě toho se sám doplnil název oddělení.
Děkuji za tipy, postřehy a rady
Ahoj,
potřeboval bych pomoci s problémem který momentálně řeším (googlil jsem, koukal na funke SQL ale nedohladel jsem se k čemu potřebuji).
Jde o to, že mám dvě tabulky:
TableA
id jmeno prijmeni id_oddeleni nazev_oddeleni
TableB
id nazev
Primární klíče jsou u obou tabulek 'id'.
Potřebuji udělat cizí klíč - TableA id_oddeleni a nazev_oddeleni na TableB (id a nazev). Když propojím id a id_oddeleni, funguje v pořádku, kdežto když chci přidat nazev_oddeleni a nazev tak už to řve, že "do not match an existing primary key or UNIQUE constraint".
DB mám v MSSQL.
Děkuji