Tag: coding

Mengkoneksikan PHP dengan MSSQL , OPENSUSE 11.1

ya , always ada problem ..

opensuse milik kantor versinya 11.1 dan di repository kambing.ui.ac.id sayangnya tidak ada driver untuk PHP-MSSQL. aplikasi sudah kadung dibuat , so solusinya ya harus create driver mssql.so nya..

langkah2nya cukup tricky dengan menggabungkan beberapa sumber.

  1. saya mengikuti langkah yang ditulis oleh forum http://forums.opensuse.org/english/get-technical-help-here/applications/420088-freetds-php-mssql-support-built-please.html#post2237685
  2. di sana saya stuck di bagian saat ingin mengompile PHP ext MSSQL nya
    errornya selalu  ‘it wasn't a valid FreeTDS directory...‘ 
     akhirnya nemu post www.php.net/manual/en/mssql.installation.php#84331
    , saya menggunakan itu dan menyesuaikan sedikit (owh ya directory freeTDS nya saya menggunkan /usr/local) dan akhirnya bisa jadi tuh mssql.so
  3. lalu saya lanjutkan lagi installasinya mengikuti link no 1

 

semoga membantu yang kebingungan seperti saya tadi..

correlation di sqlserver

duh duh duh..

dulu pas ngitung correlation ngitungnya pake PHP ,

sekarang karena env kalau bisa gak pake PHP, hanya sqlserver mau tidak mau suka tidak suka harus pake sqlserver deh

akhirnya nemu link menarik , dari link itu bisa dilihat query untuk menghitung correlation :

SELECT 
   (COUNT(*)*SUM(x.Sales*y.Sales)-SUM(x.Sales)*SUM(y.Sales))/(
   SQRT(COUNT(*)*SUM(SQUARE(x.Sales))-SQUARE(SUM(x.Sales)))*
   SQRT(COUNT(*)*SUM(SQUARE(y.Sales))-SQUARE(SUM(y.Sales)))) 
   correlation
FROM BulbSales x JOIN BulbSales y ON x.month=y.month
WHERE x.Year=1997 AND y.Year=1998 

have fun …. c o d i n g

 

 

Run Multiple SqlCommand dengan sqlcmd dan .bat file untuk sqlserver 2005

suatu saat saya butuh melakukan query ke dalam database namun ingin melakukannya secara berbarengan, pikiran pertama yang muncul saat itu adalah menggunakan multithread di JAVA (http://docs.oracle.com/javase/tutorial/essential/concurrency/) , atau pararell processing di PHP (http://stackoverflow.com/questions/70855/how-can-one-use-multi-threading-in-php-applications) ,

namun keadaan server yang saat itu terinstall hanya sqlserver2005 dan windows server 2008, belum terinstall JRE JDK maupun PHP. mau tidak mau harus menggunakan full power of windows 😀

sebenarnya untuk melakukan hal ini tidaklah terlalu sulit, kebetulan code logic yang saya gunakan ada di stored procedure sqlserver, sehingga saya hanya membutuhkan program sederhana yang bertugas untuk melakukan pemanggilan pada stored procedure tersebut.

sqlserver2005 mempunyai interface berbasis command line layar hitam (SQLCMD) yang dapat membantu pemanggilan stored procedure nya, lalu untuk membuat pararell execution dari perintah query via sqlcmd saya menggunakan script .bat sederhana..

untuk mensimulasikannya anggap saja kita punya db env sqlserver 2005 seperti dalam script :

USE [testing_load_akeh]
GO
/****** Object:  Table [dbo].[logs]    Script Date: 05/26/2013 21:02:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[logs](
	[WAKTU] [datetime] NOT NULL,
	[CHANNEL] [int] NOT NULL,
	[MESSAGE] [varchar](100) NOT NULL
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
/****** Object:  StoredProcedure [dbo].[usp_do_str_proc]    Script Date: 05/26/2013 21:02:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[usp_do_str_proc]
	@channel int,@message varchar(50)
AS
BEGIN
	declare @iterator int
	set @iterator = 1

	declare @messg varchar(100)

	while @iterator < 100
	begin
		set @messg =  @message + ' sekarang iterator ke '+cast(@iterator as varchar(5))

		insert into logs(waktu,channel,[message]) values (getdate(),@channel,@messg)

		set @iterator = @iterator + 1
	end
END
GO

dari script sql di atas dapat dilihat ada database bernama testing_load_akeh lalu kita juga memiliki table yang bernama logs dan stored procedure yang bernama  usp_do_str_proc

lalu untuk .bat nya terdiri dari 2 file yaitu (1) loop.bat yang bertugas membuat execution prosess sebanyak yang dibutuhkan, dan (2) run.bat yang akan melakukan pemanggilan perintah sqlcmd yang akan memanggil stored procedure usp_do_str_proc berikut file2 tersebut :

run.bat :

call sqlcmd -d testing_load_akeh -U <USERNAME> -P <PASSWORD> -Q "exec usp_do_str_proc @channel=%1,@message='%2'"

loop.bat

@echo off
for /L %%i in (1,1,3) do (
	set s=testingdaricmd
	start run.bat %%i %s%
)

dari script run.bat terlihat bahwa script tersebut akan memanggil stored procedure via sqlcmd
dan dari script loop.bat akan terlihat bahwa loop.bat akan melakukan pararell execution (new window) pada run.bat
dengan menggunakan perintah start dan parameter %%i dan %s%

untuk mengetest script kita, cukup ketik loop.bat di direktori ybs 😀

ok link menarik untuk mengetahui lebih detail sqlcmd anda dapat mengaksesnya dengan mengetikkan perintah sqlcmd /?
😀

happy coding

offscale

mungkin kita biasa menggunakan SCM semacam SVN, Git sebagai soure code management kalo pas ngoding bahasa gaol macam PHP Java dkk

tapi pas banyak “ngoding” stored procedure , function dkk di lingkungan database kita bingung nih gimana manage code itu menggunakan SCM..

sementara solusinya ya menggunakan offscale ini, tapi masih ada masalah nih… gak ada installer untuk windows nya 🙁

have fun code

Validasi Data Entry Mysql

Mungkin teknik ini sudah cukup lama ditinggalkan,

kebanyakan validasi disertakan dalam form input, di dalam controller, di dalam model atau dalam bentuk lain ..

namun bagi pecinta sistem basisdata link ini mungkin sangat bermanfaat yang mana akan melakukan validasi input dengan menggunakan database procedure dan trigger..

have fun coding..