<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Net i Ja &#187; kod</title>
	<atom:link href="http://netija.pl/wpis/tag/kod/feed" rel="self" type="application/rss+xml" />
	<link>http://netija.pl</link>
	<description>Blog pewnego studenta informatyki ;)</description>
	<lastBuildDate>Sun, 11 Mar 2012 13:10:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>&#8222;ORA-12838: cannot read/modify an object after modifying it in parallel&#8221;</title>
		<link>http://netija.pl/wpis/182</link>
		<comments>http://netija.pl/wpis/182#comments</comments>
		<pubDate>Tue, 15 Feb 2011 09:13:11 +0000</pubDate>
		<dc:creator>Marek</dc:creator>
				<category><![CDATA[Oracle]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://netija.pl/?p=182</guid>
		<description><![CDATA[Niby prosty insert na podstawie selekta: A w efekcie można uzyskać brzydki błąd. Jego rozwiązanie jest dość banalne. Wystarczy zapytanie zakomitować:]]></description>
			<content:encoded><![CDATA[<p>Niby prosty insert na podstawie selekta:</p>
<pre class="brush: plain; title: ; notranslate">

INSERT /*+ APPEND */ SELECT * FROM test;
</pre>
<p>A w efekcie można uzyskać brzydki błąd. Jego rozwiązanie jest dość banalne.</p>
<p>Wystarczy zapytanie zakomitować:</p>
<pre class="brush: plain; title: ; notranslate">

COMMIT;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://netija.pl/wpis/182/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kolejna porcja komend dla vim-a ;)</title>
		<link>http://netija.pl/wpis/178</link>
		<comments>http://netija.pl/wpis/178#comments</comments>
		<pubDate>Fri, 26 Nov 2010 12:57:38 +0000</pubDate>
		<dc:creator>Marek</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programowanie]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[kodowanie]]></category>
		<category><![CDATA[Vim]]></category>

		<guid isPermaLink="false">http://netija.pl/?p=178</guid>
		<description><![CDATA[Duplikowanie linii w której znajduje się kursor: Usuwanie linii w której znajduje się kursor: Wyświetlenie pomocy kontekstowej]]></description>
			<content:encoded><![CDATA[<p>Duplikowanie linii w której znajduje się kursor:</p>
<pre class="brush: plain; title: ; notranslate">(tryb komend) yyp</pre>
<p>Usuwanie linii w której znajduje się kursor:</p>
<pre class="brush: plain; title: ; notranslate">(tryb komend) yyd</pre>
<p>Wyświetlenie pomocy kontekstowej</p>
<pre class="brush: plain; title: ; notranslate">(tryb edycji) Ctrl+N</pre>
]]></content:encoded>
			<wfw:commentRss>http://netija.pl/wpis/178/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>create table as select where rownum, czyli o tworzeniu kopi tabeli z ograniczeniami</title>
		<link>http://netija.pl/wpis/169</link>
		<comments>http://netija.pl/wpis/169#comments</comments>
		<pubDate>Thu, 21 Oct 2010 06:32:30 +0000</pubDate>
		<dc:creator>Marek</dc:creator>
				<category><![CDATA[Bazy Danych]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[create table]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[PL/SQL]]></category>
		<category><![CDATA[rownum]]></category>

		<guid isPermaLink="false">http://netija.pl/?p=169</guid>
		<description><![CDATA[Czasem w czasie procesu testowania stworzonych procedur lub większych zapytań sql pojawia się potrzeba częstego ich testowania. Jednak często oryginalne dane, które mamy przetwarzać są zbyt duże by testy przeprowadzać w trakcie powstawania kodu. Dobrym rozwiązaniem tego problemu jest stworzenie kopi tabel z małą próbką testową orginalnych danych. Kod stworzenia kopi tabeli, gdzie n jest [...]]]></description>
			<content:encoded><![CDATA[<p>Czasem w czasie procesu testowania stworzonych procedur lub większych zapytań sql pojawia się potrzeba częstego ich testowania. Jednak często oryginalne dane, które mamy przetwarzać są zbyt duże by testy przeprowadzać w trakcie powstawania kodu. Dobrym rozwiązaniem tego problemu jest stworzenie kopi tabel z małą próbką testową orginalnych danych.</p>
<p>Kod stworzenia kopi tabeli, gdzie <strong>n</strong> jest zadaną ilością wierszy kopiowanych:</p>
<pre class="brush: sql; title: ; notranslate">

create table tablica_kopia as
 select * from tablica_orginalna
 where rownum &lt;=n;
</pre>
]]></content:encoded>
			<wfw:commentRss>http://netija.pl/wpis/169/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gdy konfiguracja apache nie pozwala na &#8222;php_flag magic_quotes_gpc Off&#8221;</title>
		<link>http://netija.pl/wpis/137</link>
		<comments>http://netija.pl/wpis/137#comments</comments>
		<pubDate>Wed, 19 May 2010 16:30:46 +0000</pubDate>
		<dc:creator>Marek</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[kod]]></category>

		<guid isPermaLink="false">http://netija.pl/?p=137</guid>
		<description><![CDATA[Na niektórych hostingach bywa tak,  że z pewnych względów poniższy kod nie zadziała, a wskutek tego np ckeditor też poprawnie nie będzie interpretowała tworzonych linków. Rozwiązanie problemu okazało się banalne:]]></description>
			<content:encoded><![CDATA[<p>Na niektórych hostingach bywa tak,  że z pewnych względów poniższy kod nie zadziała, a wskutek tego np ckeditor też poprawnie nie będzie interpretowała tworzonych linków.</p>
<pre class="brush: plain; title: ; notranslate">

php_flag magic_quotes_gpc Off
</pre>
<p>Rozwiązanie problemu okazało się banalne:</p>
<pre class="brush: plain; title: ; notranslate">

SetEnv MAGIC_QUOTES 0
</pre>
]]></content:encoded>
			<wfw:commentRss>http://netija.pl/wpis/137/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>&#8222;ORA-06553: PLS-382: expression is of wrong type&#8221; i tablica dual</title>
		<link>http://netija.pl/wpis/125</link>
		<comments>http://netija.pl/wpis/125#comments</comments>
		<pubDate>Wed, 05 May 2010 08:17:50 +0000</pubDate>
		<dc:creator>Marek</dc:creator>
				<category><![CDATA[Bazy Danych]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[howto]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[PL/SQL]]></category>

		<guid isPermaLink="false">http://netija.pl/?p=125</guid>
		<description><![CDATA[Kilka dni temu zacząłem się trochę więcej bawić z bazą danych Oracle i od razu napotkałem klika niespodzianek Oto jedna z nich. Pisałem funkcje składowaną, która po wykonaniu jakiś zapytań na bazie i sprawdzeniu kilku warunków miała zwrócić true lube false, a z racji że PL/SQL udostępnia cudowny typ BOOLEAN to zapragnąłem własnie z niego [...]]]></description>
			<content:encoded><![CDATA[<p>Kilka dni temu zacząłem się trochę więcej bawić z bazą danych Oracle i od razu napotkałem klika niespodzianek <img src='http://netija.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Oto jedna z nich. Pisałem funkcje składowaną, która po wykonaniu jakiś zapytań na bazie i sprawdzeniu kilku warunków miała zwrócić true lube false, a z racji że PL/SQL udostępnia cudowny typ BOOLEAN to zapragnąłem własnie z niego skorzystać.</p>
<pre class="brush: sql; title: ; notranslate">

create or replace function czy_spelnione_wymagania(
 pesel IN varchar2,
 temat IN varchar2)
 return boolean
 is

....
</pre>
<p>Funkcja się skompilowała poprawnie, więc cały szczęśliwy chciałem ją przetestować korzystając z zabawnej tablicy DUAL.</p>
<pre class="brush: sql; title: ; notranslate">

SELECT czy_spelnione_wymagania('8089123243','Oaza Nowego Zycia 1') FROM DUAL;
</pre>
<p>I tu mnie spotkało niemiłe zaskoczenie:</p>
<pre class="brush: plain; title: ; notranslate">

ORA-06552: PL/SQL: Statement ignored
ORA-06553: PLS-382: expression is of wrong type
</pre>
<p>Zasięgnąłem informacji o błędzie i byłem dość  zaskoczony tym co było przyczyną. A mianowicie poczciwy SQL nie obsługuje udostępnianego przez PL/SQL typu BOOLEAN! Więc trzeba to obejść jakoś ładnie i poniżej przedstawiam moją propozycje rozwiązania tego problemu za pomocą bloku PL/SQL.</p>
<pre class="brush: sql; title: ; notranslate">

DECLARE
VAR_BOOL BOOLEAN;
BEGIN
VAR_BOOL :=czy_spelnione_wymagania();
IF( VAR_BOOL = TRUE ) THEN
DBMS_OUTPUT.PUT_LINE( ‘TRUE’ );
END IF;
END;
</pre>
<p>Tak więc nie jesteśmy zmuszeniu do modyfikacji formatu zwracanych danych przez naszą funkcje składowaną, ale oczywiście jak ktoś bardzo lubi to może sobie przyjąć, że będzie zwracał int, gdzie FALSE = 0 a TRUE = 1.</p>
]]></content:encoded>
			<wfw:commentRss>http://netija.pl/wpis/125/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dostęp do bazy danych w Bootstrap-erze&#8230; i można ;)</title>
		<link>http://netija.pl/wpis/46</link>
		<comments>http://netija.pl/wpis/46#comments</comments>
		<pubDate>Wed, 20 Jan 2010 00:15:38 +0000</pubDate>
		<dc:creator>Marek</dc:creator>
				<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[kod]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend_Bootstrap]]></category>
		<category><![CDATA[Zend_Db]]></category>
		<category><![CDATA[Zend_Tool]]></category>

		<guid isPermaLink="false">http://netija.pl/?p=46</guid>
		<description><![CDATA[Pisząc dziś projekt z Bezpieczeństwa Aplikacji Internetowych zatrzymał mnie na chwilkę pewien problem&#8230; Jak skorzystać z bazy danych już na poziomie bootstrapera? W domyślnie wygenerowanym projekcie za pomocą narzędzia Zend_Tool, czyli wpisujemy w konsoli tak: Oprócz fajnej struktury katalogów otrzymujemy plik konfiguracyjny naszego projektu w prezencie. Znajduje się on w .\application\configs\application.ini i wygladajakoś tak: Mając [...]]]></description>
			<content:encoded><![CDATA[<p>Pisząc dziś projekt z Bezpieczeństwa Aplikacji Internetowych zatrzymał mnie na chwilkę pewien problem&#8230;<br />
Jak skorzystać z bazy danych już na poziomie bootstrapera?</p>
<p>W domyślnie wygenerowanym projekcie za pomocą narzędzia Zend_Tool, czyli wpisujemy w konsoli tak:</p>
<pre class="brush: bash; title: ; notranslate">zf create project nazwa_projektu sciezka_projektu</pre>
<p>Oprócz fajnej struktury katalogów otrzymujemy plik konfiguracyjny naszego projektu w prezencie. Znajduje się on w .\application\configs\application.ini i wygladajakoś tak:</p>
<pre>
<pre class="brush: plain; title: ; notranslate">
[production]
phpSettings.display_startup_errors = 0
phpSettings.display_errors = 0
includePaths.library = APPLICATION_PATH &quot;/../library&quot;
bootstrap.path = APPLICATION_PATH &quot;/Bootstrap.php&quot;
bootstrap.class = &quot;Bootstrap&quot;
resources.frontController.controllerDirectory = APPLICATION_PATH &quot;/controllers&quot;

[staging : production]

[testing : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1

[development : production]
phpSettings.display_startup_errors = 1
phpSettings.display_errors = 1
</pre>
<p>Mając taki ładny czysty projekt, każdy pewnie chce go wyposażyć w dostęp do bazy danych. I tu czeka nas miła, bo ustawienie adaptera do naszej bazy jest banalnie prosta i polega tylko na dodaniu małej wstawki w plik konfiguracyjny widoczny powyżej.</p>
<pre class="brush: plain; title: ; notranslate">
...
resources.frontController.controllerDirectory = APPLICATION_PATH &quot;/controllers&quot;
resources.db.adapter = PDO_MYSQL
resources.db.params.host = adres_bazy
resources.db.params.username = nazwa_konta
resources.db.params.password = haslo_dostepu
resources.db.params.dbname = nazwa_tablicy_w_bazie
[staging : production]
...
</pre>
<p>Powyższa czynność gwarantuje nam, bezproblemowy dostęp do tak skonfigurowanej bazy przy pomocy wszystkich klas z rodziny Zend_Db, w całym projekcie za wyjątkiem bootstrapera (.\application\Bootstrap.php). I tu właśnie się okazało, że w niektórych przypadkach i tam ten dostęp by był przydatny. Aby go uzyskać wystarczy przed naszym kodem korzystającym z dostępu do bazy ustawić domyślny adapter bazy danych, a raczej powiedzieć Zendowi gdzie leży jego konfiguracja. Pomoże nam w tym poniższy kawałek kodu:</p>
<pre class="brush: php; title: ; notranslate">
...
$config = new Zend_Config_Ini('../application/configs/application.ini', 'production');
$db = Zend_Db::factory($config-&gt;resources-&gt;db);
Zend_Db_Table::setDefaultAdapter($db);
...
</pre>
<p>I można już odpytywać bazę danych i tu <img src='http://netija.pl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://netija.pl/wpis/46/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

