mozilla

Compare Revisions

Storage

Change Revisions

Revision 59185:

Revision 59185 by MarcDiethelm on

Revision 59186:

Revision 59186 by MarcDiethelm on

Title:
Storage
Storage
Slug:
Storage
Storage
Tags:
NeedsTechnicalReview, Interfaces, Storage, "Toolkit API", Fixit
NeedsTechnicalReview, Interfaces, Storage, "Toolkit API", Fixit
Content:

Revision 59185
Revision 59186
t215 t215</pre>
216    <h3 name="Executing_a_statement">
216== Executing a statement ==217      Executing a statement
217 218    </h3>
219    <p>
218The main way to execute a statement is with &lt;code&gt;mozIStora220      The main way to execute a statement is with <code>mozIStora
>geStatement.executeStep&lt;/code&gt;. This function allows you to>geStatement.executeStep</code>. This function allows you to enume
> enumerate all the result rows your statement produces, and will >rate all the result rows your statement produces, and will notify
>notify you when there are no more results.> you when there are no more results.
219 221    </p>
222    <p>
220After a call to &lt;code&gt;executeStep&lt;/code&gt;, you '''use 223      After a call to <code>executeStep</code>, you <b>use the ap
>the appropriate getter function''' in [[mozIStorageValueArray]] t>propriate getter function</b> in <a href="en/MozIStorageValueArra
>o get the values in a result row (mozIStorageStatement implements>y">mozIStorageValueArray</a> to get the values in a result row (m
> mozIStorageValueArray). The example below only uses &lt;code&gt;>ozIStorageStatement implements mozIStorageValueArray). The exampl
>getInt32()&lt;/code&gt;.>e below only uses <code>getInt32()</code>.
221 224    </p>
225    <p>
222You can get the type of a value from &lt;code&gt;mozIStorageValue226      You can get the type of a value from <code>mozIStorageValue
>Array.getTypeOfIndex&lt;/code&gt;, which returns the type of the >Array.getTypeOfIndex</code>, which returns the type of the specif
>specified column. Be careful: sqlite is not a typed database. Any>ied column. Be careful: sqlite is not a typed database. Any type 
> type can be put into any cell, regardless of the type declared f>can be put into any cell, regardless of the type declared for the
>or the column. If you request a different type, sqlite will do it> column. If you request a different type, sqlite will do its best
>s best to convert them, and will do some default value if it is i> to convert them, and will do some default value if it is impossi
>mpossible. Therefore, it is impossible to get type errors, but yo>ble. Therefore, it is impossible to get type errors, but you may 
>u may get weird data out.>get weird data out.
223 227    </p>
228    <p>
224C++ code can also use &lt;code&gt;AsInt32&lt;/code&gt;, &lt;code&229      C++ code can also use <code>AsInt32</code>, <code>AsDouble<
>gt;AsDouble&lt;/code&gt;, etc. functions which return the value a>/code>, etc. functions which return the value as a more convenien
>s a more convenient C++ return value. Watch out, though, because >t C++ return value. Watch out, though, because you won't get any 
>you won't get any errors if your index is invalid. Other errors a>errors if your index is invalid. Other errors are impossible, bec
>re impossible, because sqlite will always convert types, even if >ause sqlite will always convert types, even if they don't make se
>they don't make sense.>nse.
225 230    </p>
231    <p>
226C++ example:232      C++ example:
227 233    </p>
228&lt;pre&gt;234    <pre>

Back to History