[ MatezYU @ 19.04.2007. 12:53 ] @
E ovako imam jedno polje jmbg npr. 111111111111 i ja bih hteo nekako da izmedju svakog karaktera ubacim jedno prazno mesto, npr. 1 1 1 1 1 1 1 1 1 1 1 ... itd. Kako to mogu da odradim preko sql-a? |
[ MatezYU @ 19.04.2007. 12:53 ] @
[ madamov @ 19.04.2007. 13:39 ] @
Ne radi to u bazi, već reši filterom za prikaz na ekranu.
[ chachka @ 19.04.2007. 15:44 ] @
Code: SELECT REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( REPLACE(jmbg, '0', '0 '), '1', '1 '), '2', '2 '), '3', '3 '), '4', '4 '), '5', '5 '), '6', '6 '), '7', '7 '), '8', '8 '), '9', '9 ') FROM neka_tabela; Ko ce me proglasiti ludim? :) [ chachka @ 20.04.2007. 11:43 ] @
Kako nema veze sa bazom?
1. Pitanje je bilo kako da se uradi ubacivanje SPACE-ova pomocu SQL-a. 2. Ja sam dao resenje uz cistu upotrebu baze i SQL-a. [ madamov @ 20.04.2007. 11:49 ] @
Tvoje rešenje i odgovor je OK, ali neema veze jer ćemo napraviti medveđu uslugu čoveku time što ćemo mu objasniti kako to da uradi u SQL-u. Naime, ovakvim stvarima nije mesto u bazi već ih treba rešavati u Frontendu iliti klijentskom alatu. JMBG i ostali podaci moraju da budu ispravni u bazi.
[ X Files @ 24.04.2007. 11:05 ] @
Po meni, koristan je i tvoj komentar i rešenje koje je dao chachka.
Tvoj komentar je 100% na mestu (uz to je i vrlo edukativan) jer podaci u bazi treba da budu u bazu upisani kako bi svako i očekivao, a kako će biti reprezentovani sasvim je drugi 'problem', koji se stoga i rešava na drugom mestu. Rešenje koje je dao chachka je takođe sasvim na mestu, pogotovo što otvara vidike onima koji se bave SQL-om, kako je moguće koristiti ('ajde da tako nazovem) 'kontrolisane rekurzije'. Po meni, ova tema *i sa rešenjem i sa komentartom* ima smisla, i bolje je da bude negde u forumu, nego da čuči i muči mmwc-a gde će sa njom iz Čekaonice :). Sve najbolje. [ MatezYU @ 24.04.2007. 11:34 ] @
Oket.. Poenta svega toga je bilo da se prilikom stampe izvuce iz baze jmbg broj i da se malo "razvuce" broj.. Ne bi te podatke uopste cuvao nigde u bazi nego prilikom citanja iz baze da se oni dobiju malo razvuceni..
[ misk0 @ 25.04.2007. 15:47 ] @
Uhm... mozes u bazi drzati STA HOCES, samo je pitanje koliko je to rjesenje 'dobro'. Iz baze se podaci izvlace u sirovom obliku da bi se smanjila komunikacija na relaciji aplikacija <-> baza a onda se njihova reprezentacija za ekran, stampac, telefon ili neki cetvrti uredjaj formira u app. Ne kazem da je chacka-ino rjesenje neispravno, samo kazem da to nije pravi put i nacin kako se rjesavaju stvari.
Mislim da bi bilo bolje kad bi autor teme rekao koje mu je programsko okruzenje pa da u taj forum smjestimo temu. [ X Files @ 25.04.2007. 16:41 ] @
Ja bih rekao da je Delphi na osnovu profila :)
Mada i ako mmwc odluci da ubije poruku ne bi bilo previse stete, autor je video o cemu se radi. [ X Files @ 25.04.2007. 17:14 ] @
OT:
Sad jos samo da dodje morlic i istera nas iz svog dvorishta :) [ chips @ 25.04.2007. 20:14 ] @
Ako je problem samo do štampanja ovog podatka, ne znam kakav report koristiš, ali sigurno ima podešavanje fonta, boje pozadine, deblje veće, okvir, bilo šta da na njemu iskažeš drugačije ovakj podatak.
[ MatezYU @ 26.04.2007. 05:51 ] @
Delphi je u pitanju u free report.. Treba da mi bude razvucen broj za stampu da bi brojevi stali u kucicu. Ne moze nijedan font tako da izgleda nego moram da stavljam prazna mesta, jedno 2 prazna mesta na svaki broj. Uradio sam preko sql-a i radi super..
[ savkic @ 26.04.2007. 09:52 ] @
Svakako je to bolje uraditi na klijentu kao što si već dobio savet. Najprecizniji način za pozicioniranje je da se JMBG razdvojina 13 cifara i za svaku napravi odgovarajuća report kontrolu koja se postavi gde treba.
[ priki @ 26.04.2007. 10:50 ] @
može da se reši na sto načina
u bazi može to da reši preko: while petlje, #temp tabela, stored procedura, stringreplace funkcije, funkcija da sam na tvom mestu radio bih sa while petljom u proceduri i tako ne bih brinuo o dužini stringa [ chips @ 26.04.2007. 22:30 ] @
Pade mi nešto na pamet. A da napraviš svoj font brojeva za ovaj slučaj?
[ dogriz @ 27.04.2007. 07:36 ] @
Ja za neke druge stvari koristim nešto kao ovaj kod:
Code: procedure TForm1.Table1JMBGGetText(Sender: TField; var Text: string; DisplayText: Boolean); var S, tmp: String; i: Smallint; begin if Sender.IsNull then Text:='JMBG nije unet' else begin tmp:=''; S:=Sender.AsString; for i := 1 to 13 do tmp:=tmp+s[i]+' '; Text:=tmp; end; end; Ne utiče na zapis podataka u bazi, a prikazuje ono što hoću na ekranu i kod štampe (Rave). Isto tako može da se koristi i OnSetText ako je potreban i unos podataka. [ MatezYU @ 27.04.2007. 12:36 ] @
Da, mislio sam o tome da pravim novi font koji bi bio malo "širi" ali sam odustao jer nemam toliko vremena..
Rešio sam sa concat funkcijom. Postavio sam jedan query i u njemu odradio funkciju čitanja jedan po jedan karakter iz string-a i sa concat spojao ih sa praznim mestima.. Odlična ideja za onu gettext funkciju. Probaću kasnije tako da odradim.. Koristim free report. Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|