vineri, 19 martie 2010

Din categoria tutoriale/pentru incepatori

Grrrrrr! In sfarsit am scapat de iarna, de frig, de ninsoare si drumuri blocate! Asta ar fi partea buna, partea rea e ca ne loveste astenia de primavara si ne e greu si sa ne dam jos din pat, ce sa mai vorbim de codat ...

Dar pentru entuziasti si mai ales pentru incepatorii intr-ale java, un mic exercitiu pentru dezmortit degetele pe tastatura, foarte folositor in viata de zi cu zi, crearea unui fisier text.


import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.File;
import java.io.Writer;
import java.io.FileNotFoundException;
import java.io.IOException;

public class CreateTextFile
{
public static void main(String[] args)
{
Writer writer = null;

try
{
String text4File = "De creat un fisier text cu ce avem aici";

String fileName = "fisier.txt";

File newFile = new File(fileName);
writer = new BufferedWriter(new FileWriter(newFile));
writer.write(text4File);

} catch (FileNotFoundException e)
{
e.printStackTrace();
} catch (IOException e)
{
e.printStackTrace();
} finally
{
try
{
if (writer != null)
{
writer.close();
}
} catch (IOException e)
{
e.printStackTrace();
}
}
}
}


joi, 4 martie 2010

Array in Oracle

Mai jos avem un mod de a declara un array in oracle, initializarea elementelor din array si utilizarea lor:

DECLARE
TYPE VARCHAR_ARRAY IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
our_array
VARCHAR_ARRAY;
BEGIN
our_array(1) := 'ceva';
DBMS_OUTPUT.PUT_LINE('array(1) este '|| our_array(1));
END;


In cazul in care avem o procedura care primeste ca parametru un astfel de array, putem folosi urmatorul model:

DECLARE
TYPE VARCHAR_ARRAY IS TABLE OF VARCHAR2(20) INDEX BY BINARY_INTEGER;
our_array
VARCHAR_ARRAY;
BEGIN
our_array(1) := 'ceva';
select * from nume_procedura(
our_array(1), 'alt_parametru');
END;

miercuri, 27 ianuarie 2010

Banc de programatori

If someone asks you for the bit depth of a boolean, look them straight in the eye and say, "That's virtual-machine dependent." They'll be impressed.

marți, 26 ianuarie 2010

Modificare autoincrement in Oracle 10g

Se mai intampla, din diverse motive sa umpli o tabela cu o gramada de date pe care mai apoi sa vrei sa le stergi. Nimic mai simplu sa golesti o tabela, dar de multe ori daca avem setat un autoincrement pe cheia primara, vrem sa o luam de la capat cu numaratoarea.

Pentru a modifica valoarea de pornire a unei secvente avem urmatoarea varianta rapida:

Stergerea secventei initiale:
DROP SEQUENCE schema_name.seq_name;

Recrearea secventei cu pornire de la 1
CREATE SEQUENCE schema_name.seq_name
INCREMENT BY 1
START WITH 1
MAXVALUE 2147483647
NOCACHE;

vineri, 22 ianuarie 2010

Eroare ORA-00972

Nu mai lucrasem de mult pe Oracle asa ca astazi in momentul in care am incercat sa creez niste tabele noi m-am lovit din nou de aceasta eroare: ORA-00972: identifier is too long.
Daca faceti o cautare rapida pe google, veti descoperi ca e vorba despre un identificator, nume tabela, nume coloana, nume index, nume cheie mai lung de 30 de caractere . Era de-a dreptul evident, nu?

joi, 14 ianuarie 2010

Functie in JavaScript

Astazi m-am chinuit vreo 10 minute la un form banal dintr-o pagina, ceva ce am mai facut de zeci si sute de ori, la propriu, acum numai nu imi iesea.

Despre ce e vorba, un form simplu de tot cu un select si o functie banala in JavaScript care sa recupereze valoarea optiunii selectate si sa faca submit pe form. Done in 60 seconds? Nu prea si asta pentru ca orele de nesomn isi spun cuvantul si mintea zboara aiurea: am denumit la fel form-ul si functia, asa ca primeam o eroare de toata frumusetea cum ca x nu e functie (setC is not a function).

Neobservand problema numelui ma uitam ca boul la poarta noua la eroare si functie, am rescris functia, luat copy paste numele sa nu fi incurcat vreo litera, am luat inclusiv o functie din alta pagina si redenumit-o, dar la fel... Noroc ca intr-un final mi s-au deschis ochii si am vazut ce boroboanta mare am facut. Am redenumit functia si a mers ca uns.

Daca va loviti si voi de eroarea asta si codul functie e ok, verificati si restul elementelor din pagina deoarece problema se trage de acolo.

Sfatul pe ziua de azi, oricata experienta, vechime ai, daca esti obosit, casca de doua ori ochii inainte sa faci ceva!

miercuri, 21 octombrie 2009

Good old HTML (Problema HTML)

De cateva zile ma confruntam cu o problema destul de spinoasa, pentru mine binenteles. Aveam intr-un rand html doua imagini cu link-uri pe ele care erau usor deplasate in jos si nu intelegeam de ce, cu atat mai mult cu cat imaginile nu aveau dimensiuni mai mari decat randul respectiv, borderul era setat pe 0, la tabel la fel scos cellspacing-ul si cellpadding-ul, ce mai o adevarata enigma!

Cam asa arata problema mea:



Am incercat de toate, am scos imaginile nici un efect, am incercat tot felul de alinieri, modificat dimensiunile, si tot nici un efect. Dupa mai multe incercari m-am dat batuta cu atat mai mult cu cat nu intelegeam de unde poate veni problema. Astazi m-am intors la codul buclucas si l-am intrebat si pe nea' gogu cam care ar putea fi problema cu atat mai mult cu cat ajunsesem la concluzia ca tagurile <a> sunt de vina.

Gasisem pe un site cum ca problema se poate trage de la dimensiunea fontului in caz ca e setat asta in stilul elemntului, altii dadeau clasica rezolvare align-ul, dar nimic nu parea sa functioneze pentru cazul meu. In disperare de cauza am zis sa mai intreb si lumea poate s-a mai lovit cineva de asa ceva si aflu solutia, dar nu am avut noroc. Spre fericirea mea(si sanatatea mea mintala) intr-un final tot nea' gogu mi-a dat raspunsul.

Se pare ca alinierea pe verticala tine cont de valoarea implicita a atributului line-height, lucru de bun simt si logic, as spune eu.Problema la mine era faptul ca inaltimea implicita a randului se modifica in momentul in care adaugam < a > si cei doi pixeli nastrusnici imi dadeau peste cap designul.
Cam asa arata acum dupa ce am modificat inaltimea elementului( <td>), partea frumoasa fiind ca functioneaza atat pe mozilla cat si pe ie :