Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Stor procedure i ČŽŠ

[es] :: Firebird/Interbase :: Stor procedure i ČŽŠ

[ Pregleda: 2461 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Stor procedure i ČŽŠ04.10.2017. u 14:04 - pre 78 meseci
Vidim da i nema aktivnosti... Svi sve znaju o FB ili više nitko ne radi s njim?


Koristim FB 2.5
Kako u stor proceduri, u varijablu upisati naša slova?
Code:

VarStr = 'Bez računa';


javlja grešku:
This operation is not defined for system tables.
unsuccessful metadata update.
MODIFY RDB$PROCEDURES failed.
Malformed string.

Ako "č" zamjenim sa "c", sve je OK.
 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: Stor procedure i ČŽŠ04.10.2017. u 14:26 - pre 78 meseci
Našao... ako koga zanima:

Code:

VarStr = 'Bez ra' || x'e8' || 'una';


Ord('č') = 232 hex = e8

Ostala slova koja vam trebaju - tražite...
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: Stor procedure i ČŽŠ04.10.2017. u 14:54 - pre 78 meseci
Vodi računa da kod koji si naveo nije unicode. Ja ne bih savetovao korišćenje 8-bitnih kodnih rasporeda u 2017.
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Stor procedure i ČŽŠ04.10.2017. u 17:54 - pre 78 meseci
> Kako u stor proceduri, u varijablu upisati naša slova?

Podesi da prilikom konekcije ne bazu koristis odgovarajuci charset, a takodje mozes i podesiti u samoj SP charset za promenljive.

Code:

CREATE PROCEDURE NEW_PROCEDURE
RETURNS(
  RES VARCHAR(50) CHARACTER SET WIN1250)
AS
DECLARE VARIABLE Test VARCHAR(50) CHARACTER SET WIN1250;
BEGIN
  Test = 'ŠđĆŽĐćdč ';
  
  Res = Test;
  SUSPEND;
END


 
Odgovor na temu

FranjoZG
Franjo Popović
Programer
Zagreb

Član broj: 328819
Poruke: 298
*.adsl.net.t-com.hr.



+4 Profil

icon Re: Stor procedure i ČŽŠ05.10.2017. u 09:38 - pre 78 meseci
Probao sam to. Baza mi je WIN1250.
Radim sa IBExpert-om, ne prolazi ...

Pokušao sam kreirati i domenu, ne prolazi:
Code:

CREATE DOMAIN VCHAR_80 AS
VARCHAR(100) CHARACTER SET WIN1250
COLLATE PXW_SLOV;
 
Odgovor na temu

savkic
Igor Savkić

Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Stor procedure i ČŽŠ05.10.2017. u 13:53 - pre 78 meseci
Meni radi tako u EMS SQL Manageru...

 
Odgovor na temu

Brodoplovac
Beograd

Član broj: 171299
Poruke: 838
...148.91.adsl.dyn.beotel.net.



+166 Profil

icon Re: Stor procedure i ČŽŠ18.10.2017. u 18:38 - pre 78 meseci
Ja sam imao problem da unesem kukasta slova u bazu preko isql-a, u Windowsu 10. Baza ima UTF8 enkoding. Probao sam sa menjanjem kodnog resporeda shella, probao sam sa "SET NAMES" komandom, probao sam razne enkodinge, ništa nije davalo konzistentan rezultat. Inače, regional settings mi je podešen na srpski, latinica.

Onda sam pročitao da na Linuxu shell radi po UTF8 rasporedu. Znao sam za cygwin i za bash za windows. Skinuo sam cygwin mod. On mi je konačno dao konzistentan rezultat. Cygwin mod instalirate kao običan windows program. Na kraju dobijete ikonicu kojom otvarate cygwin shell.

Kada se otvori cygwin shell kucate (backslesh je escape znak za space):
/cygdrive/c/Program\ Files/Firebird/Firebird_3_0/isql.exe

Nakon toga ste u isql i sve normalno radi.

Takođe, ovaj cygwin shell radi malo drugačije od windows shella što se tiče copy/paste i sličnih stvari.
EDITOVANO: Cygwin shell nije case sensitive.

[Ovu poruku je menjao Brodoplovac dana 19.10.2017. u 16:59 GMT+1]
 
Odgovor na temu

Brodoplovac
Beograd

Član broj: 171299
Poruke: 838
*.beorol.rs.



+166 Profil

icon Re: Stor procedure i ČŽŠ28.12.2017. u 14:15 - pre 76 meseci
EDIT: Ovo rešenje ne radi. Kliktao sam direktno na BAT fajl, ali on u stvari otvara običan shell. Konačno sam pronašao rešenje. Dovoljno je kliknuti na Desni ALT i na odgovarajući znak na tastaturi i sve radi normalno.

Cygwin nije hteo da piše znakove @€[]{} kada se koristi srpska tastatura. Rešenje je da se u fajlu "C:\cygwin64\Cygwin.bat" stavi linija "SET TERM=cygwin" ispred "bash --login -i". Sada sve lepo radi.

Code:
@echo off
C:
chdir C:\cygwin64\bin
SET TERM=cygwin
bash --login -i


Još neka rešenja za ovaj ili slične probleme su na linku superuser.com




[Ovu poruku je menjao Brodoplovac dana 29.12.2017. u 12:11 GMT+1]
 
Odgovor na temu

Brodoplovac
Beograd

Član broj: 171299
Poruke: 838
*.beorol.rs.



+166 Profil

icon Re: Stor procedure i ČŽŠ31.01.2018. u 12:05 - pre 74 meseci
Ovo je kod za pristupanje Firebirdu 3.0 iz MS Office VBA. Koristim obični Firebird_ODBC driver sa ove stranice https://www.firebirdsql.org/en/odbc-driver/ . Firebird baza koristi UTF8 enkoding.
Prvo je potrebna funkcija koja pretvara slova ukucana u VBA IDE u UTF8. Ona nije neophodna ako nemamo kukasta slova, ali za upis [čćžđš] moramo je koristiti.
Code:
Public Function ADO_EncodeUTF8(ByVal strStringToEncode As String) As String
Dim objStream As Object
Dim data() As Byte
    Set objStream = CreateObject("ADODB.Stream")
    objStream.Charset = "utf-8"
    objStream.Mode = adModeReadWrite
    objStream.Type = adTypeText
    objStream.Open
    objStream.WriteText strStringToEncode
    objStream.Flush
    objStream.Position = 0
    objStream.Type = adTypeBinary
    objStream.Read 3 ' skip BOM
    data = objStream.Read()
    objStream.Close
    ADO_EncodeUTF8 = StrConv(data, vbUnicode)
End Function

Ovo je funkcija za čitanje podataka. Pretpostavimo da u bazi postoji tabela "Firebird" sa kolonom "Firebird" koja je VARCHAR(100) formata. U njoj neka postoji barem jedan red sa podatkom "Pera čćžšđ".
Code:
Sub readFromFBird()
Dim conn As ADODB.Connection, rst As ADODB.Recordset
Dim row As Long
 
Set conn = New ADODB.Connection
conn.Open "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fff;DBNAME=C:\Users\Pegazus\Desktop\EEE2.FDB"
Set rst = New ADODB.Recordset
 
strEncoded = ADO_EncodeUTF8("Pera čćžšđ")

rst.Open "Select * From Firebird Where Firebird = '" & strEncoded & "';", conn, adOpenDynamic, adLockOptimistic
Do While Not rst.EOF
    Debug.Print rst.Fields(0)
rst.MoveNext
Loop
End Sub

Ovo je funkcija za upisivanje podataka. Opet upisujemo u tabelu Firebird, u kolonu Firebird.
Code:
Sub writeToFBird()
Dim conn As ADODB.Connection, rst As ADODB.Recordset
Dim row As Long
 
Set conn = New ADODB.Connection
conn.Open "DRIVER=Firebird/InterBase(r) driver;UID=SYSDBA;PWD=fff;DBNAME=C:\Users\Pegazus\Desktop\EEE2.FDB"
Set rst = New ADODB.Recordset
 
strEncoded = ADO_EncodeUTF8("Sima čćžđš")

strSQL = "INSERT INTO Firebird ( Firebird ) VALUES ( '" & strEncoded & "');"

conn.Execute strSQL

End Sub

Nikada ne enkodirajte čitav SQL izraz ( SELECT * FROM ... ). Tada neće da radi, dobija se "malformed string" greška. Funkciju "ADO_EncodeUTF8" koristiti samo za podatke iz tabela ("Pera čćžšđ").
Regional settings podešavanja Windowsa nemaju nikakav uticaj.



 
Odgovor na temu

[es] :: Firebird/Interbase :: Stor procedure i ČŽŠ

[ Pregleda: 2461 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.