Senin, 29 Juni 2015

Tambah, Ubah dan Hapus di FoxPro dengan Bahasa SQL


Tambah Data

INSERT INTO namaTabel(field1,field2,field3) VALUES(isiField1,isiField2,isiField3)

Edit Data

UPDATE namaTabel SET field1=isiField1,field2=isiField2,field3=isiField3 ;
WHERE field1= isiField1

* usahakan apabila update jangan langsung mendeklarasikan seperti ini UPDATE SET field2=thisform.txtIsiField2.value,... karena akan menyebabkan error.usahakan deklarasikan terlebih dahulu diatasnya seperti ini isiField2=thisform.txtIsiField2.value

Hapus Data

DELETE FROM namaTabel WHERE field1=isiField1

Cara mencari apa value tersebut ada di data atau tidak di FoxPro



Sebelum memasukan sintax ini, kamu harus open file terlebih dahulu !!

SELECT namaTabel
SEEK allt(thisform.txtNamatabel.Value)
IF !FOUND() 
       Sintax....
ELSE
       Sintax....
ENDIF

Menampilkan Data ke Grid di FoxPro


Masukan funsi dibawah ini :

SELECT field1,field2 FROM namatabel ORDER BY field1; 
into CURSOR CrsNamatabel;
thisform.GrdNamatabel.RecordSource = "CrsNamatabel"
apabila ingin mencari karakter tertentu :

SELECT field1,field2 FROM namatabel;
WHERE field1 LIKE '%'+ALLTRIM(UPPER(THISFORM.txtField1.value))+'%';
into CURSOR CrsNamatabel;
thisform.GrdNamatabel.RecordSource = "CrsNamatabel"

Membuat Fungsi Nama Bulan Bahasa Indonesia di FoxPro



Fungsinya adalah sebagai berikut :

function Ctgl(X)  
local nbulan,cBulan  
nBulan=month(x)  
do case     
 case nbulan=1          
  cbulan='Januari'     
 case nbulan=2          
  cbulan='Pebruari'     
 case nbulan=3          
  cbulan='Maret'     
 case nbulan=4         
  cbulan='April'     
 case nbulan=5                
  cbulan='Mei'     
 case nbulan=6          
  cbulan='Juni'     
 case nbulan=7          
  cbulan='Juli'     
 case nbulan=8          
  cbulan='Agustus'     
 case nbulan=9          
  cbulan='September'     
 case nbulan=10                
  cbulan='Oktober'    
 case nbulan=11          
  cbulan='Nopember'     
 case nbulan=12          
  cbulan='Desember'  
endcase                
tglbulan=ltrim(str(day(X)))+' '+cbulan+' '+STR(YEAR(x),4)
return tglbulan
pemangginalnnya :

Ctgl(DATE())
thisform.lblDate.Caption = "TANGGAL : "+tglbulan

Membuat Function di FoxPro untuk Membuka File dan Tabel




Function BukaTabel
    Parameter cNamaTabel,nNomorArea,lBerbagi
    lSalah=.F.
    ON ERROR DO prossalah with lsalah    
    Select (nNomorArea)
    if lBerbagi=.T.
       Use (CnamaTabel) SHARE AGAIN
    else
       Use (cNamaTabel) EXCLUSIVE AGAIN
    endif
    ON ERROR
Return .not. lsalah

Procedure prosSalah
   Parameter lSalah
   wait windows at 19,50("File sedang di lock")Timeout 3 
   lsalah=.t.
RETURN

Cara manggilnya :

DO WHIL.T.
hasil=BukaTabel('namatabel',1,.T.) &&share
IF hasil=.F.
 JWB=pesan2('namatabel.DBF')
 IF JWB=6
  WAIT''TIMEO(0.5)
  LOOP
 ENDI
 CLOSE ALL
 CLOSE TABLES ALL
 CLOSE INDEXES ALL
 thisform.Release
 RETURN 
ENDIF 
SET INDEX TO namatabelindex
EXIT
ENDD

Selasa, 09 Juni 2015

VB 6.0 - Fungsi unuk Mengambil Nama User dan Nama Komputer




Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Function Get_UName()as StringDim sUser As StringDim sComputer As StringDim lpBuff As String * 1024
  'Get the Login User NameGetUserName lpBuff, Len(lpBuff)sUser = Left$(lpBuff, (InStr(1, lpBuff, vbNullChar)) - 1)lpBuff = ""
  'Get the Computer NameGetComputerName lpBuff, Len(lpBuff)sComputer = Left$(lpBuff, (InStr(1, lpBuff, vbNullChar)) - 1)lpBuff = ""
  Get_UName = "Login User: " & sUser & vbCrLf & _"Computer Name: " & sComputer
End Function

Foxpro - Sintak Dasar Operasi Database



1. Membuat DataBase Baru
- Syntax
CREATE DATABASE [nama database]
- Contoh
CREATE DATABASE Kuliah

2. Menutup Database
- Syntax
CLOSE DATABASE
- Contoh
CLOSE DATABASE

3. Membuka Database
- Syntax
OPEN DATABASE [nama database]
- Contoh
OPEN DATABASE Kuliah

4. Menghapus Database
- Syntax
DELETE DATABASE [nama database]
- Contoh
DELETE DATABASE Kuliah
Ket : Untuk menghapus database, database tersebut harus dalam keadaan tertutup.

5. Membuat Tabel
- Syntax
CREATE TABEL [nama table](nm_F1 t_f1 (p_f1), nm_FN t_fN (p_fN))
Ket:
nm_F=Nama Field
t_f=Type Field
p_f=Panjang Field
- Contoh
CREATE TABEL Mhs(nama c (25), alamat c (50))

FieldType
C, Char, Character n – Character field of width n
Y, Currency – – Currency
D, Date – – Date T, DateTime – – DateTime
B, Double – Double
G, General – – General
I, Int, Integer – – Integer
L, Logical – – Logical
M, Memo – – Memo
N, Num, Numeric – – Numeric field of width n with d decimal places
F, Float n d Floating Numeric field of width n with d decimal places
V, Varchar n - Varchar field of width n

6. Menambahkan Tabel yang telah ada ke Database
- Syntax
ADD TABLE TableName
- Contoh
ADD TABLE MHS
Ket : Bila Pembuatan tabel pada saat suatu database terbuka maka secara otomatis
tabel akan berada pada database yang aktif

7. Membuang Tabel yang ada dalam Database
- Syntax
REMOVE TABLE TableName
- Contoh
REMOVE TABLE MHS

8. Menghapus Table
- Syntax
DROP TABLE [nama tabel]
- Contoh
DROP TABLE Mhs

9. Membuka / Menggunakan Tabel
- Syntax
USE [nama tabel]
- Contoh
USE Mhs

10. Menutup Spesifik Tabel
- Syntax
USE IN [nama tabel]
- Contoh
USE IN Mhs

11. Membuat Index Table & Mengaktifkannya
- Syntax
INDEX ON [nama field index] TAG [nama index]
SET ORDER TO [nama index]
Ket:
Table Aktif Harus Ditentukan Dengan Syntax USE
- Contoh
USE Mhs
INDEX ON nama TAG nama
SET ORDER TO nama

12. Menambah Record Dalam Tabel
- Syntax1
INSERT INTO dbf_name [(FieldName1 [, FieldName2, ...])] ;
VALUES (eExpression1 [, eExpression2, ...])
- Syntax2
APPEND BLANK
REPLACE FieldName1 With Value1
REPLACE FieldName2 With Value2
REPLACE FieldNameN With ValueN
- Contoh1
INSERT INTO Mhs (nama, alamat) ;
VALUES (“budi”,”Jepara”)
- Contoh2
APPEND BLANK
REPLACE nama With “budi”
REPLACE alamat With “Jepara”

13. Menampilkan Record
- Syntax1
Brows {Bentuk Grid)
- Syntax2
List {Ke Layar Editor Foxpro)
- Syntax3
? [nama field]
- Contoh3
? nama
Ket: Untuk Membersihkan Layar Editor Foxpro digunakan Syntax Clear

14. Berpindah Antar Record
- Syntax1
Go [no urutan record]
Go TOP
Go BOTTOM
- Syntax2
SKIP [Jumlah Counter]
- Contoh1
Go 4 {Menuju Record Nomor 4}
- Contoh2
SKIP 1 {Menuju 1 Record dibawah Record Aktif}
SKIP -1 {Menuju 1 Record diatas Record Aktif}

15. Pencarian Record
- Syntax1
LOCATE FOR [Expression]
Ket:
Dikombinasikan dengan perintah FOUND() untuk mengetahui hasil
pencarian, FOUND() akan Bernilai .T. bila ketemu dan .F. jika tidak
dan tanpa perlu index aktif.
- Syntax2
SEEK([Expression])
Ket:
Memerlukan index aktif untuk pencarian Expression berisi data yang
mau dicari berdasarkan index aktif, akan mengembalikan nilai .T.
jika ketemu dan .F. jika tidak.
- Contoh1
LOCATE FOR nama=”budi”
- Contoh2
SET ORDER TO nama
SEEK(“budi”)

16. Mengedit Record
- Syntax1
UPDATE [nama tabel] SET Field1=Value1, Field2=Value2 ;

17. Menghapus Record
- Syntax1
DELETE FOR [Expression]
Ket:
Table Aktif Harus Ditentukan Dengan Syntax USE
- Syntax2
DELETE FROM [nama tabel] WHERE [Expression]
- Contoh1
USE Mhs
DELETE FOR nama=”hani”
- Contoh2
DELETE FROM Mhs WHERE nama=”hani”
Ket: Syntax DELETE diatas tidak akan menghapus data secara fisik,
data masih dapat dikembalikan dengan syntax RECALL, Untuk
Menghapus Data Secara Fisik Setelah Syntax Diatas Harus
Diakhiri dengan Syntax PACK.

Senin, 08 Juni 2015

Foxpro - Mengenal Index / Sort


Index mempunyai peranannya tersendiri didalam pengolahan tabel / database, seandainya saja, anda mempunyai tabel yang berisi 15 record, tentunya
jika anda akan mencari salah satu dari record yang anda inginkan, tidaklah sulit. Tetapi bagaimana jika tabel anda tersebut mempunyai record yang lebih dari 500 record atau mencapai 10.000 record,
bahkan hingga 500.000 record.
Jadi untuk mengolah data yang mempunyai jumlah record yang sangat banyak, anda membutuhkan perintah index ini. Dengan perintah ini, maka anda dapat
melakukan pengurutan data dan dapat mencari data dengan sangat cepat dan akurat. Index juga sangat berguna jika anda melakukan proses relasi antar tabel.
Proses index sebenarnya adalah melakukan pengurutan data dan ditampung didalam satu file khusus yang mempunyai ekstensi atau akhiran .idx atau
.cdx.
Tabel utama pada saat anda melakukan proses index, sebenarnya tidak berubah. Jika anda membuka suatu tabel dimana tabel tersebut telah di index maka
pembukaan tabel utama akan merujuk kepada tabel index, yang akan mengikat berdasarkan kunci atau field yang di index.
Jelasnya, jika anda membuka tabel yang sudah diberi perintah index maka semua perintah untuk mengolah data, telah merujuk pada file index
tersebut.
Bentuk umum format perintah index
Index on eexpression to idxfilename | tag tagname [ collate ccollatesequence ] [of cdxfilename] [for lexpression] [compact] [ascending | descending]
[unique | candidate] [additive]
Pada visual foxpro 9.0 terdapat dua (2) macan index, pertama adalah index yang mempunyai akhiran .idx, dimana file index ini hanya dapat menampung
satu macam index saja, file index ini disediakan visual foxpro 9.0 untuk kompabilitas dengan foxbase + / foxpro versi 2.x.
Sedangkan untuk index yang mempunyai akhiran .cdx, adalah file index, dimana file ini dapat menampung index dengan jumlah tidak terbatas, index pada
.idx menggunakan to dan index yang tersimpan didalam tabel dengan akhiran .cdx menggunakan tag.
Membuat index
Bukalah tabel backuppenduduk.dbf dan copykan datanya kedalam tabel penduduk.dbf sehingga data dalam tabel penduduk.dbf tertimpa dan diganti dengan
tabel dari backuppenduduk.dbf.
CLOSE ALL
USE backuppenduduk
COPY TO penduduk
USE penduduk
Perhatikan isi tabel tersebut yang ada pada field pekerjaan, dimana pada tabel tersebut isi nya belum urut. Untuk itu anda akan membuat index
tersebut berdasarkan field pekerjaan, ketikan pada Jendela Command :
INDEX on pekerjaan TO pekerjaan
BROWSE
Perhatikan urutan isi dari pekerjaan yang telah diurutkan, dan urutanya berdasarkan dari kecil kebesar, ini disebut index ascending. Pada
kenyataannya Visual foxpro 9.0 secara otomatis melakukan index dengan pola ascending. Perhatikan data kosong pertama kali yang diletakan paling atas yang tadinya terdapat pada record ke 26 sekarang
tampak pada posisi pertama, meski demikian posisi record sesungguhnya tetap pada record ke 26.
Mengindex tabel lebih dari satu index.
anda dapat melakukan index tabel tidak pada satu field saja, melainkan dapat melakukanya pada beberapa field sekaligus didalam satu tabel.
INDEX on agama+nama TO nagama
BROWSE FIELDS agama,nama,pekerjaan
Sebaiknya nama file index dibuat bagus dan mudah diingat. Namun jika untuk mengolah data nama file index boleh asal / bebas sesuai kehendak anda,
boleh menggunakan satu huruf, dua huruf atau huruf apa saja.
INDEX on gol_darah TO xx
Oke sekarang coba anda lakukan beberapa index untuk tabel penduduk.dbf
USE c:\dtpenduduk\penduduk.DBF
INDEX on nama TO aa
INDEX on pekerjaan to bb
INDEX on nama + pekerjaan TO cc
DISPLAY STATUS
Perhatikan bahwa index yang aktif adalah index yang terakhir dibuat yakni cc.idx
Memilih index aktif.
Jika anda akan memilih index yang anda inginkan dari beberapa index yang ada dalam satu tabel, gunakan perintah :
SET INDEX TO
Jika dalam satu tabel ada beberapa file index berakhiran .idx, maka untuk mengaktifkan salah satu index dapat menggunakan perintah set index.
USE c:\dtpenduduk\penduduk.DBF
INDEX on nama TO aa
INDEX on pekerjaan to bb
INDEX on nama + pekerjaan TO cc
Untuk mengaktifkan index bb , dimana bb adalah index untuk field pekerjaan. Maka ketikan perintah :
SET INDEX TO bb BROWSE
Perintah SET INDEX TO bb , akan mengaktifkan tabel penduduk.dbf dan mengkaitkan dengan file index pekerjaan.idx
Menghapus file index .idx.
File index dapat dihapus dengan cara : tutup file tabel dan hapus file index yang anda pilih, ketikan perintah ini pada Jendela Command .
DELETE FILE xx.idx
Sedangkan untuk menghapus semua file index, gunakan perintah :
DELETE FILE *.idx
Lihatlah file index, maka sudah tidak ada satupun file index yang ada di hardisk anda.
Index majemuk atau index struktural.
anda telah mengenal file index yang dibuat diatas yakni file index yang berakhiran .idx. File index dengan akhiran .idx hanya dapat menampung satu
file index saja. Visual FoxPro 9.0 mengijinkan anda untuk membuat index yang dapat menampung index dalam jumlah tak terbatas. Karena file .idx hanya dapat menampung satu jenis file index saja, maka
secara otomatis jika diaktifkan akan menjadi nama kunci index tersebut.
USE c:\dtpenduduk\penduduk.DBF
INDEX on nama + pekerjaan TO cc
Jelas disini file .idx yang aktif adalah file index cc.idx. Berbeda dengan index majemuk atau struktural, index ini secara oromatis selalu dibuka
pada saat anda membuka tabel tanpa harus memanggilnya dengan perintah Set index.
Menciptakan index majemuk atau index struktural.
Jika membuat index biasa menggunakan To maka jika membuat index majemuk menggunakan Tag
USE c:\dtpenduduk\penduduk.DBF
INDEX on nama TAG nama
INDEX on pekerjaan TAG pekerjaan
DISPLAY STATUS
Perhatikan pada status dari tabel yang sedang dibuka dibawah ini :
Tampak ada 2 buah nama index yakni nama dan pekerjaan. Jika tabel di tutup, kemudian dibuka kembali maka file index yang telah dibuat akan ikut terbuka secara otomatis, tanpa harus menuliskan perintah set inde to ..
CLOSE ALL
USE c:\dtpenduduk\penduduk.DBF
DISPLAY STATUS
Memilih index aktif.
Untuk memilih index aktif gunakan perintah set order to nama file index.
USE c:\dtpenduduk\penduduk.DBF I
NDEX on nama TAG nama
INDEX on pekerjaan TAG pekerjaan
SET ORDER TO NAMA
Reindex data.
Jika tabel dibuka, sementara file index tidak dibuka maka jika terjadi perubahan data maka data file index tidak ikut diperbaharui. Untuk itu agar
file index selalu dalam kondisi mutahir dan selalu menyesuaikan dengan tabel aktif maka perlu diadakan pengkinian data index tersebut.
Ketikan perintah :
USE c:\dtpenduduk\penduduk.DBF
REINDEX
Menghapus file index .cdx.
Untuk menghapus tabel index .cdx dari dalam tabel gunaka perintah :
USE c:\dtpenduduk\penduduk.DBF
DELETE TAG nama
DISPLAY STATUS
Maka file index nama akan dihapus dari dalam tabel penduduk.dbf
Perintah sort.
Bentuk umum perintah sort adalah sebagai berikut
SORT TO TableName ON FieldName1 [/A | /D] [/C] [, FieldName2 [/A | /D] [/C] ...] [ASCENDING | DESCENDING] [Scope] [FOR lExpression1] [WHILE
lExpression2] [FIELDS FieldNameList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [NOOPTIMIZE]
Seperti halnya index, perintah sort juga dapat digunakan untuk mengurutkan data hanya saja perintah ini membentuk suatu file bukan berakhiran .idx
atau .cdx. Atau lainnya, melainkan perintah sort ini membentuk file tabel baru berakhiran .dbf. Jadi hasil dari perintah sort adalah Tabel.
Contoh :
Ketikan perintah ini pada Jendela Command .
USE c:\dtpenduduk\penduduk.DBF BROWSE SORT ON nama TO namasort
SELECT b
USE namasort
BROWSE
Dengan perintah tersebut diatas maka visual foxpro 9.0 telah membuat satu buah tabel baru dengan nama namasort.dbf dan datanya urut berdasarkan
field nama.
Perintah sort dapat ditulis seperti ini
SORT TO namasort ON nama
Hasilnya sama saja antara penulisan to didepan dan to dibelakang
Penjelasan :
anda telah mempunyai tabel penduduk dan tabel nama yang isinya sama dengan tabel penduduk hanya saja tabel namasort.dbf isi datanya di urutkan
berdasarkan field nama.
Sort Desending.
Sort dapat diurutkan seperti halnya index. Untuk mengurutkan secara urut dari bawah keatas atau secara desending maka ketikan perintah :
SORT ON nama TO nm descending
USE nm
BROWSE
Sort asending.
Ketikan perintah ini untuk membuat file dengan urutan sort secara asending.
SORT TO nama ON nama/a
BROWSE
Anda dapat menggunakan /d untuk desending dan /a untuk asending.

Selasa, 02 Juni 2015

Koneksi Visual FoxPro Ke MySQL Menggunakan ODBC




Koneksi Source ke ODBC

strConn = "DATABASE=NamaKoneksiODBC;SERVER=NamaServer;PASSWORD=NamaPassword;PORT=3306;UID=root;PROVIDER=MSDASQLR;DRIVER={MYSQL ODBC 5.1 DRIVER};"
PUBLIC Conn
Conn = SQLSTRINGCONNECT(strConn)
Untuk menampilkan data di Grid

SQLEXEC(Conn,"SELECT * FROM namaTabel, "alias")
thisform.grid.recordsource = "alias"