Tampilkan postingan dengan label windows. Tampilkan semua postingan
Tampilkan postingan dengan label windows. Tampilkan semua postingan

2009-05-12

admin MSSQL diLinux dengan SQuirreL SQL

Walau gua udah pake 100% linux, tapi server-server dikantor, masih pake Win buat njalanin SQL server dan ASP. Biasanya buat manage / edit SQL gua pake Aqua Datastudio, tapi sekarang sudah tidak gratis lagi :(, akhirnya setelah ubek-ubek dan test, gua putusin pake Squirrel SQL.

caranya donlod dulu di http://squirrel-sql.sourceforge.net/

pastikan JRE /JDK minimal 1.5 keatas..

kemudian jalankan programnya untuk install ke dalam system.

untuk plugin MS SQL server gua pakai JTDS
donlod manual di http://jtds.sourceforge.net/

komponen ini yang saya gunakan juga untuk koneksi MS SQL Server ke OpenOffice.org . (Mantab toh.. :D )

Untuk database yang lain lihat direferensi Squirrel SQL. ada banyak kok.



Driver yang lainnya bisa dilihat di menu driver pada Squirrel SQL, support bayar sekali database,
diantaranya PostgreSQL, Mysql, Oracle, Sybase, SAPDB, SQLLite, HSQL, dsb.


Sebagai catatan, karena berbasis JAVA maka agak berat boo .. minimum RAM 1GB




Powered by ScribeFire.



2009-05-11

php konek MS SQL Server? kenapa tidak?

setelah sekian lama menggunakan php dan belun pernah konek ke mssql dari linux box, hari ini akhirnya mencoba dan berhasil.

kalo apache+phpnya ada di windows, proses gampang banget. tinggal hapus ";" di php5.ini tepat pas di php_mssql.dll, restart apache, selesei.

kalo dari linux box agak ribet, musti install php-pear, freetds dsb. berikut urut2annya:
1. Download FreeTDS dari http://www.freetds.org/
2. extract dan install
# tar zxvf freetds-stable.tgz
# cd freetds-0.82/ <-- versi gw, trgantung dari donlodan # ./configure --prefix=/usr/local/freetds # make # $ make install
3. Install php-pear, php-sybase, php5-dev
seperti biasa, ada cara mudah dan cara susah, cara mudahnya seperti ini :
apt-get install php5-sybase php-pear php5-dev
cara susahnya :P, seperti ini :
masuk ke direktori installer php, ketik :
#./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql --with-mssql=/usr/local/freetds/

di pcku ada masalah pada waktu konfigurasi, dia mengeluarkan error :
configure: error: Directory /usr/local/freetds/bin is not a FreeTDS
apabila ada error seperti ini, yg harus dilakukan adalah copy 2 file (tds.h & libtds.a) dari hasil extract-an freetds-stable.tgz (di pc gw di direktori : /home/detanto/Desktop/freetds-0.82) :
cp /home/detanto/Desktop/freetds-0.82/include/tds.h /usr/local/freetds/include
cp /home/detanto/Desktop/freetds-0.82/src/tds/.libs/libtds.a /usr/local/freetds/lib
setelah proses copy selesai, configure lagi dan lanjutkan ke make & make install
#make
# make install
4. edit file freedts.conf yang ada di /usr/local/freetds/etc
vi /usr/local/freetds
trus beri konfigurasi sql server yang akan kita hubungi
[SQLsystem]
host =10.1.2.7
port = 1433
tds version = 7.0
5. testing dari php, buat file test.php, trus masukkan kode ini :
putenv('TDSVER=80');
putenv('FREETDSCONF=/usr/local/freetds/etc/freetds.conf');
$db_conn = mssql_connect("SQLsystem","detanto","112233")
or die( "ERROR: DB Connection failed" );

$sqldb=mssql_select_db("ITEMMASTER",$db_conn);
$sql="SELECT top 10 PRODUCT_NAME,ITEM_IMAGE1 FROM TB_ITEM_MASTER WHERE ITEM_IMAGE1 IS NOT NULL";
$tbl_item=mssql_query($sql);
while($row=mssql_fetch_array($tbl_item))
{
echo $row['PRODUCT_NAME']."\n";
mssql_close($db_conn)
6. Restart apache dan buka file test.php

Kalo kode ini berhasil, brarti dah sukses dah :D

2009-04-24

Connect SQL Server ke OpenOffice

Ternyata OpenOffice.Org canggih juga .. bisa koneksi ke banyak database (Mysql, PostgreSQL, Oracle, MS SQL Server, dll). yang gua coba koneksi ke MSSQL.

Tahapannya install dulu JDTS-Java di Ubuntu

sudo apt-get install libjtds-java

setelah itu buka Openoffice Base

Pilih Connect Existing database -> pilih JDBC






Masukkan user SQL




Kemudian Next Next -> simpan sebagai file OpenOffice Base

Setelah diregister di OpenOFfice bisa dibuka dimana saja (Calc, Writer, Base). tinggal clik icon data source kemudian pilih nama ODB nya (OpenOffice Base)




Tinggal Mau bikin apa ? Bisa disetup dengan dataPivot (Calc), Report (Base) , atau mail / report paper (Writer)

Kata siapa dari Linux tidak bisa konek ke SQL Server :D













Powered by ScribeFire.

2009-03-27

subversion server di debian, tortoiseSVN sbg client di windows

lagi nyari solusi untuk kolaborasi source code dengan rekan satu team. dari saran ifnu, aku coba pake subversion (http://subversion.tigris.org), untuk instalasi windows tinggal donlod versi windowsnya dan install bla2 selese.

ubuntu, debian:
apt-get install subversion
Dulu aku kira ini cuman bs dipake di bahasa pemrograman tertentu, trnyata bisa untuk semuanya (jadi malu :P) .. Jadi critanya di kantor gw, krn developernya kluar masuk jd susah mantau versi terbaru dari aplikasi.

berikut diterjemahin dari svn-book, hasil browsing2 di internet dan share pengalaman.

Apakah subversion itu?
subversion : sistem tersentralisasi untuk share informasi.
intinya adalah repositori yang merupakan pusat dari data. repositori ini sebetulnya mirip dengan file-server, bedanya ia mengingat setiap perubahan yang terjadi di file dan folder tersebut.

di bukunya dijelasin kasus yg sering banget terjadi di kantorku baik sekarang maupun dulu, yaitu mengerjakan satu project yang sama beramai-ramai dengan source code terpusat di server, rese bgt kalo kita ngerjain ABCDE tiba user numpukin dengan EFGH, hangus lah kerjaan kita .. hiks2. misalnya :


ada 2 user, harry dan sally. mereka bertugas untuk mengerjakan project yang sama sehingga mereka mengakses ke repository yang sama. harry & sally mengedit project A, harry merubah menjadi A' dan sally menjadi A'', asumsi harry melakukan proses penyimpanan terlebih dahulu, sehingga project A sekarang menjadi project A'. baru setelah itu sally melakukan penyimpanan. nah pada proses ini ada kemungkinan sally menumpuk atau menimpa pekerjaan harry dengan pekerjaannya.

kalo yang diatas menggunakan metode file sharing, subversion menggunakan metode solusi copy-modify-merge.

detail kasus persis seperti yang dicontohkan diatas, cuman sekarang menggunakan subversion. harry merubah project menjadi A' dan sally merubah menjadi A'', sementara sally sudah menyimpan ke server (commit) terlebih dahulu. ketika harry melakukan penyimpanan ke repository, harry akan mendapat mesej error bahwa modul dia tidak update (karena versioning terakhir adalah sally).


harry harus melakukan checkout file2 ke repository, setelah proses checkout selesai, baru harry bisa melakukan perubahan dan commit ke repository. lha tapi gimana kalo harry dan sally melakukan edit di file yang sama? wew tetep bisa. subversion mengistilahkan ini dengan conflict. confilct dapat diresolve dengan membandingkan file yang di repository dan file yang ada di komputer harry. bisa dicek satu2 perbedaannya baru kemudian di-merge.

hal ini sangat memudahkan, karena kalo dulu pasti ada proses teriak2an dulu kalo lagi arisan koding di kantor hehhehehehehe

Langkah2 settingnya:
1. buat direktori subversion, misal ada di /var/svn/baru/usermng
mkdir -p /var/svn/baru/usermng
2. buat subversionnya :
sudo svnadmin create /var/svn/baru/usermng
3. import data yang akan dipantau
sudo svn import /opt/coding/usermanaj file://var/svn/baru/usermng -m "Aplikasi Subversion"
4. Setting apache
a. Cara Mudah :
apt-get install apache2 libapache2-svn
b.Cara Susah :
menyusul
5. Edit Konfigurasi apache svn yang ada di /etc/apache2/mods-available/dav_svn.conf (<-- lokasi ini kalo instalasi apache liwat apt-get)
DAV svn <-- untuk enabling repository #SVNParentPath /var/svn/baru/usermng <-- Path Repository untuk handling multiple svn SVNPath /var/svn/aplikasi/baru/usermng <-- Path Repository AuthType Basic  AuthName "Aplikasi Subversion" <-- Keterangan AuthUserFile /var/svn/passwd <-- Password file Require valid-user 
6. Ubah kepemilikan folder aplikasi jadi milik si apache
chown -R www-data: /var/svn/aplikasi
7. Buat password file :
httpasswd -c /var/svn/passwd detanto

Untuk clientnya, misalnya di windows; musti install tortoiseSVN yang bisa diunduh di http://tortoisesvn.tigris.org/, letak versi terbaru pada saat blog ini ditulis ada disini, filenya mayan besar; sekitar 19MB.

setelah diinstall, setiap kita klik kanan akan muncul 2 shortcut baru, SVN Checkout dan TortoiseSVN beserta link2nya.

Contoh Penerapan :
1. dari contoh diatas, kita sudah membuat satu repository untuk source code user manajemen (usermng). Misal kita buat satu folder baru "User", kita klik kanan trus pilih SVN Checkout (kalo gambarnya kurang jelas, tinggal diklik aja)


2. Akan muncul dialog box seperti dibawah ini :
masukkan url repository-nya; misalnya http://10.1.2.7/svn/usermng, setelah klik ok, akan muncul permintaan untuk memasukkan user dan password, masukkan user yang telah dicreate seperti contoh diatas :

apabila otorisasi berhasil, tortoiseSVN ini akan langsung memeriksa ke repository server semua filenya. apabila di folder kita blum ada maka akan diupdate ke folder tersebut :

setelah proses selesei, bila dilihat di windows explorer tampilannya akan seperti ini

tortoiseSVN akan menambahkan tanda di icon folder atau file, tanda cawang hijau brarti source yang disini source yg tidak mengalami konflik, atau subversion statusnya normal.

Pertanyaannya : ada ga subversion buwat database? gw blun tau, bahkan blun googling jugak heheheheheehe, paling gampang si semua aktivitas database didokumentasiin ke script trus folder script itu di register ke subversion, selesei :D

2009-03-23

[MSSQL] Extract data menggunakan BCP

Ini salah satu cara untuk mengextract data dari database MSSQL kedalam bentuk CSV yang paling mudah (cara bodoh :D )



ALTER PROCEDURE dbo.p_x_DbExtract
@dTBASE_name VARCHAR(200) , -- Database Name
@TABLE_Name VARCHAR(200) , -- Table Name ( if empty then all tables in database will be extracted )
@path VARCHAR(50) , -- Path for CSV file
@server VARCHAR(100) , -- Server name ( default localhost)
@saPasswd VARCHAR(20) -- Password for SA

AS
BEGIN
/*
Author : Andy Utomo

DECLARE
@field_Name VARCHAR(200) ,
@schema_Name VARCHAR(100) ,
@fileName VARCHAR(200) ,
@textMsg VARCHAR(6000)

DECLARE @rowCount int , @rowMax int

DECLARE @table table (
idx int identity( 1,1) ,
dTBASE_name VARCHAR(200) ,
schema_Name VARCHAR(200) ,
field_Name VARCHAR(200)
)
IF ISNULL( @dTBASE_name ,'') = ''
BEGIN
SELECT @dTBASE_name = TABLE_CATALOG from INFORMATION_SCHEMA.TABLES
END
if isnull(@path ,'') = ''
begin
set @path = 'D:\data\'
end
if isnull(@server ,'') = ''
begin
set @server = 'localhost'
end
if isnull(@saPasswd ,'') = ''
begin
set @saPasswd = 'sa'
end

IF ISNULL( @TABLE_Name ,'' ) =''
BEGIN
INSERT INTO @table
SELECT table_catalog , table_schema , TABLE_NAME
FROM information_Schema.tables
WHERE table_catalog = @dTBASE_name
AND table_type = 'BASE TABLE'
AND TABLE_NAME <>'dtproperties'
END
ELSE
BEGIN
INSERT INTO @table
SELECT table_catalog , table_schema , TABLE_NAME
FROM information_Schema.tables
WHERE table_catalog = @dTBASE_name
AND table_type = 'BASE TABLE'
AND TABLE_NAME <>'dtproperties'
AND @TABLE_Name = TABLE_NAME
END


set @rowCount = 1
SELECT @rowMax = count(*) from @table
while @rowCount <= @rowMax
begin
SELECT
@dTBASE_name = dTBASE_name ,
@field_Name = field_Name,
@schema_Name = schema_Name
from @table where idx = @rowCount
set @textMsg = 'bcp '+ @dTBASE_name + '.'+ @schema_Name +'.' + @field_Name +' out ' + @path + @field_Name+ '.csv -c -t \\ -r \n -S ' + @server + ' -Usa -P'+ @saPasswd + ' '

exec master..xp_cmdshell @textMsg ,NO_OUTPUT
set @rowCount = @rowCount + 1
end
END

[MSSQL] Delete Semua Relation key pada MSSQL 2000

Script yang cukup berbahaya.. menghapus semua relation dalam database di MSSQL 2000, belum ditest di MSSQL 2005 keatas



/*
DELETE FOREIGN KEY ( RELATION TABLE )
*/


declare @table
table
(
IDX int identity( 1,1) ,
tbl_name varchar(50) ,
tbl_constraint varchar(200)
)
declare @table2 table ( MSG varchar(500) )
declare @sql varchar(1000) ,
@tbl_Name varchar(50),
@tbl_constraint varchar(200) ,
@rowCount int ,@rowMax int ,
@MSG VARCHAR(200)

set @rowCount = 1

INSERT INTO @table
SELECT
b.[name],
a.[name]
FROM SYSOBJECTS a
INNER JOIN SYSOBJECTS b on a.[parent_obj] = b.[id]
WHERE a.xtype ='F'

select @rowCount
select @rowMax = count(*) from @table
select @rowCount , @rowMax
select * from @table

do while @rowCount <= @rowMax
begin
select @tbl_Name = tbl_Name ,
@tbl_constraint = tbl_constraint
from @table where idx = @rowCount
--INSERT INTO @table2
select @MSG = 'ALTER TABLE dbo.' + @tbl_Name + ' DROP CONSTRAINT [' + @tbl_constraint + ']'
EXEC (@MSG)
set @rowCount = @rowCount + 1
end

SELECT * FROM @table2
select b.[name],
b.[id] ,
a.[name] ,
a.[id]
from SYSOBJECTS a
inner join SYSOBJECTS b on a.[parent_obj] = b.[id]
WHERE a.xtype ='F'