<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlserver.ro/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Database APIs</title><link>http://sqlserver.ro/forums/43/ShowForum.aspx</link><description>ADO, ADO .NET, ODBC, OLE DB, DB-Library</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Re: Parametrii OldDbParameter, Update query si baza de date Access</title><link>http://sqlserver.ro/forums/thread/2817.aspx</link><pubDate>Mon, 01 Oct 2007 12:34:13 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2817</guid><dc:creator>B_gd_n[ ]Sahlean</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2817.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=43&amp;PostID=2817</wfw:commentRss><description>&lt;p&gt;using System;&lt;br&gt;using System.Collections.Generic;&lt;br&gt;using System.Text;&lt;br&gt;using System.Data;&lt;br&gt;using System.Data.OleDb;&lt;br&gt;&lt;br&gt;namespace ConsoleApplication1&lt;br&gt;{&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; class Program&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; static void Main(string[] args)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=H:\\bd\\test.mdb";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; string strSQL = "UPDATE Factura SET CodFactura = CodFactura*10 WHERE CodFactura = ?";&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OleDbConnection objCon = new OleDbConnection(strCon);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; OleDbCommand objCmd = new OleDbCommand(strSQL, objCon);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objCmd.CommandType = CommandType.Text;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objCmd.Parameters.AddWithValue("PrimulParametru", 100);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objCon.Open();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int iRez = objCmd.ExecuteNonQuery();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; objCon.Close();&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.Write("Rezultat executie UPDATE {0}", iRez);&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console.ReadLine();&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;}&lt;br&gt;&lt;/p&gt;&lt;p&gt;ExecuteNonQuery returneaza numarul inregistrarilor care au fost modificate (UPDATE) in acest caz. Daca ExecuteNonQuery returneaza 0 inseamna ca nu au fost modificate inregistrarile (nici o inregistrare) si asta pentru nu exista valori care sa verifice conditiile din WHERE pentru a putea fi realizata minim o modificare. Daca ai campuri de tip CHAR/VARCHAR si derivate implicate in conditiile din WHERE atentie la spatii.&lt;br&gt;&lt;/p&gt;</description></item><item><title>Re: Parametrii OldDbParameter, Update query si baza de date Access</title><link>http://sqlserver.ro/forums/thread/2816.aspx</link><pubDate>Mon, 01 Oct 2007 11:52:47 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2816</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2816.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=43&amp;PostID=2816</wfw:commentRss><description>&lt;p&gt;Scuze pentru:&lt;/p&gt;&lt;p&gt;1. spatiul lipsa.&lt;/p&gt;&lt;p&gt;2. mica rautate fata de Access. Am folosit "adevarat" in sensul putin mai "de cartier" al cuvantului.&lt;/p&gt;&lt;p&gt;Desigur ca datele de intrare trebuie validate - o posibilitate ar fi folosirea validatorilor in aplicatia .NET.&lt;/p&gt;&lt;p&gt;&lt;br&gt;
&lt;/p&gt;</description></item><item><title>Re: Parametrii OldDbParameter, Update query si baza de date Access</title><link>http://sqlserver.ro/forums/thread/2815.aspx</link><pubDate>Mon, 01 Oct 2007 11:12:58 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2815</guid><dc:creator>B_gd_n[ ]Sahlean</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2815.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=43&amp;PostID=2815</wfw:commentRss><description>&lt;p&gt;De fapt ar putea fi:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;cmd.CommandText = "UPDATE Part SET revision = "
+&amp;nbsp; rev.ToString()&amp;nbsp; +&amp;nbsp; &lt;b&gt;" WHERE&lt;/b&gt; (PartID = "&amp;nbsp; +&amp;nbsp;
part_id.ToString()&amp;nbsp; +&amp;nbsp; ")". &lt;/p&gt;
&lt;p&gt;Ar fi bine sa fie un spatiu intre " si WHERE pentru ca altfel vei obtine: &lt;/p&gt;
&lt;p&gt;"UPDATE ... revision = &lt;font color="red"&gt;&lt;b&gt;0W&lt;/b&gt;&lt;/font&gt;HERE ..."&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Daca folosesti aceasta solutie trebuie as acorzi atentie si unor posibile atacuri tip SQL injection. Cu alte cuvinte trebuie sa validazi validezi valorile variabilelor rev si pard_id.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Diana: ce intelegi prin&amp;nbsp; "baza SQL adevarata" ? Sa intelegem ca exista si "baze SQL false" ?&lt;br&gt;&lt;/p&gt;</description></item><item><title>Re: Parametrii OldDbParameter, Update query si baza de date Access</title><link>http://sqlserver.ro/forums/thread/2812.aspx</link><pubDate>Mon, 01 Oct 2007 10:32:04 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2812</guid><dc:creator>Diana</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2812.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=43&amp;PostID=2812</wfw:commentRss><description>&lt;p&gt;Incearca&lt;/p&gt;&lt;p&gt;&amp;nbsp;cmd.CommandText = "UPDATE Part SET revision = "
+&amp;nbsp; rev&amp;nbsp; +&amp;nbsp; "WHERE (PartID = "&amp;nbsp; +&amp;nbsp;
part_id.ToString()&amp;nbsp; +&amp;nbsp; ")".&lt;/p&gt;&lt;p&gt;rev si part_id sunt
variabile din codul C#. Ideea este sa concatenezi partile "fixe" din
statement-ul SQL cu valorile ( eventual "ToString()") ale variabilelor &lt;/p&gt;&lt;p&gt;*
Daca am inteles bine, lucrezi pe o baza Access. Pentru o baza de
SQL&amp;nbsp; "adevarata" &lt;img src="http://sqlserver.ro/emoticons/emotion-1.gif" alt="Smile" /&gt; as recomanda folosirea unei proceduri
stocate care sa faca update-ul.&lt;br&gt;
&lt;/p&gt;</description></item><item><title>Parametrii OldDbParameter, Update query si baza de date Access</title><link>http://sqlserver.ro/forums/thread/2807.aspx</link><pubDate>Mon, 01 Oct 2007 09:32:15 GMT</pubDate><guid isPermaLink="false">963f3a18-65dd-4aad-905c-b785cfe1d7c7:2807</guid><dc:creator>nelusan</dc:creator><slash:comments>0</slash:comments><comments>http://sqlserver.ro/forums/thread/2807.aspx</comments><wfw:commentRss>http://sqlserver.ro/forums/commentrss.aspx?SectionID=43&amp;PostID=2807</wfw:commentRss><description>&lt;p&gt;Salut,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Nu stiu care e problema cu codul de mai jos si poate ma ajuta cineva. &lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp; Operatia de update de mai jos are success daca in loc de parametrul "@revision" in codul sql pun direct valoarea. Daca in schimb utilizez parametru, ExecuteNonQuery returneaza 0. Si nu inteleg de ce?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Pentru baze de date Access nu functioneaza parametrii cum trebuie?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Alta intrebare ar fi de ce nu merge atunci cand inserez valoarea DBNull.Value intr-un camp care permite valori null.&lt;/p&gt;&lt;br&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Parameters.Clear();&lt;br&gt;&lt;br&gt;&lt;/p&gt;&lt;blockquote&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.CommandText = "UPDATE Part SET " +&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "revision = @revision" +&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " WHERE (partId = @partId)";&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Parameters.AddWithValue("@partId", partId);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmd.Parameters.AddWithValue("@revision", 1);&lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int result = cmd.ExecuteNonQuery();&lt;/blockquote&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;mersi mult&amp;nbsp;&lt;/p&gt;</description></item></channel></rss>