Commands out of sync; you can’t run this command now

Kalau kita execute store procedure Mysql dalam pemograman PHP. Kemudian kita melanjutkan query selanjutnya maka kita akan mendapatkan error “Commands out of sync; you can’t run this command now“.

Berikut solusi yang didapat dari: http://php.net/manual/en/mysqli.store-result.php Kita harus menyisipkan command yang memanggil custom function ‘clearStoredResults($sConn);‘  untuk membersihkan hasil query sebelumnya sebelum melanjutkan execute query berikutnya.

$sConn = mysqli_connect($servdb, $usrdb, $usrdbpasswd);
if(!$sConn){
        echo "{msg:'Connection Error'}";
        exit;
}
$user='bangbang';
$db = mysqli_select_db ($sConn,$dbname);
$sql = "Call userlogin ('{$user}')";
$res=$sConn->query ($sql);
while($result = $res->fetch_array(MYSQLI_ASSOC)) {
        echo "Jumla baris=".$res->num_rows;
        echo    "<br>";
        clearStoredResults($sConn);
        echo    "<br>".$sql = "Update mtuser SET last_login=Now() Where iduser={$result['iduser']}";
        $sConn->query($sql);
        echo "<br>".mysqli_error($sConn);
}

#------------------------------------------
function clearStoredResults($mysqli_link){
#------------------------------------------
    while($mysqli_link->next_result()){
      if($l_result = $mysqli_link->store_result()){
              $l_result->free();
      }
    }
}


 

2016 October 12 at 11:38 am Leave a comment

Script Auto Backup Restore MYSQL Dua Server dengan Banyak Database

Saudara semuanya, pernah punya masalah untuk auto restore dari server yang berdeda di dalam database MYSQL

Misal kita ingin membuat sekenario sebagai berikut:

  1. Server satu sebagai Prod/live yang satu lagi untuk Develop.
  2. Server Satu Prod/Live Satu Stand By, dengan database yang mendekati sama antara Live dan Bakup/ Stand By

Misal utuk sekenario satu Kadang kalanya ketika kita ingin membuat suatu perubahan pada program php-nya di server Develop  untuk mengetes-nya kita menginginkan kondisi database-nya mendekati atau bahkan sama dengan yang Prod/Live. Atau untuk sekenario dua berapa lama waktu yang terbuang untuk melakuakn manual bakup and Restore jika kita menginginkan semirip mungkin kondisi satabasenya.

Untuk hal diatas kita harus melakukan backup terlebih dahulu “mysqldump -u UserName -pPassword  –routines –single-transaction DataBaseName>FileBackup_Name.sql -h IP_Address” dari database yang di Prod kemudian Restore database ke local “mysql -u User_Name -pPassword DataBaseName<FileBackup_Name.sql“.

Disini terlihat ketidak efesiensian karena harus melakukan dua perintah, dan mungkin kita harus mengecek terus menerus apakah sudah selesai atau belum hasil backup-nya “padahal kita bisa melakukan hal2 produktif lain selama kita menunggu backcup”. Baru kemudian bisa meresorenya lagi, belum lagi jika database yang ada banyak😦 (more…)

2015 January 27 at 11:01 am Leave a comment

Bagaimana Cara Debug di SAP-SmartForms

Sumber: http://wiki.scn.sap.com/wiki/display/ABAP/Easy+Step+To+Debug+a+Smartform

Jika ada perbedaan hasil pada program SmartForms, maka kita akan kesulitan untuk menelusuri atau debug.

Pada dasarnya Smartforms ditulis kedalam ABAP program yang bisa kita gunakan TCode SE38. Kita perlu sedikit tricky untuk dapatkan ABAP Programnya.

Jika kita sudah mendapatakan ABAP Programnya maka kita bisa menyisipkan “External BreakPoint”.

Cara untuk mendapatkan ABAP Programnya:

  1. Buka Smartfroms-nya (TCode: smartforms)
  2. Isikan nama smartform kita yang akan kita debub
  3. Click tombol Display
  4. Setelah masuk Screen SAP Form Bulder, Click menu “EnvironmentFunction Module Name” Copy Nama Function Modulenya
  5. Buka TCode SE37(Function Builder), Paste “Function Module Name yang di-copy pada step 5” pada Isian Function Module
  6. Click tombol Display, kemudian cari kalimat “PERFORM %GLOBAL_INIT“, kemudian double click pada kata %GLOBAL_INI , untuk membuka programnya
  7. Sisipkan “External BreakPoint” pada baris program, agar bisa break-point pada saat jalankan Smartforms.

Selamat mencoba

2014 November 20 at 11:45 am Leave a comment

SAP Create and Maintain Dictionary-Table

Membuat Table di SAP

Ada tiga bagian dalam proses pmbuatan Table di SAP

1.      Dictionary. 1

2.      Maintain Dialog Table. 2

3.      Maintain Table Views. 5

4.      Create Transaction Code / TCode

1.     Dictionary

tcode: SE11

ABAP-CreateTable01

Isi Table: dengan nama table yang akan kita buat

Click tombol “Create”

ABAP-CreateTable02

(more…)

2014 October 31 at 10:53 am Leave a comment

Apa Istilah Collation Dalam Database?

Collation, sederhananya adalah cara mengurutkan “Order” berdasarkan bobot setiap karakter.
Untuk lebih jelasnya, berikut tabel yang menunjukan hasil pengurutan “Order By” dengan berbeda Collation.

latin1_swedish_ci latin1_german1_ci latin1_german2_ci
Muffler Muffler Müller
MX Systems Müller Muffler
Müller MX Systems MX Systems
MySQL MySQL MySQL

Collation, di-setting di berbagai level yang bisa diwariskan ke level bawahnya( Instance – Database – Table – Column). Ketika Menginstall Instance kita menetukan Default Collation. Dan Setiap kali kita buat Database kita dapat menentukan default Collation, jika tidak dientukan maka Default Collation Instance untuk database adalah Default Collation dari Instance. Begitu seterusnya untuk table dan Column .

Beberapa referensi tentang Collation:

  1. Collation-MYSQL,
  2. Contoh penggunaan di MYSQL
  3. PostgreSQL
  4. Oracle
  5. Collation-MSSQL

Dampak: Perbedaan Collation bisa menimbulkan error ketika dibandingkan, semisal dalam query JOIN TABLE,

Berikut contoh query dan error yang ditimbulkan, penyebabnya, dan cara mengatasinya di MSSQL:
Query Error
SELECT A.EmpId, A,EmpName, B.Userid FROM MTPersonnel AS A JOIN DTAbsensi AS B ON A.empId=B.Userid; Msg 468, Level 16, State 9, Line 3
Cannot resolve the collation conflict between “Chinese_PRC_CI_AS” and “SQL_Latin1_General_CP1_CI_AS” in the equal to operation.
Penyebabnya:
Adanya perbedaan Collation atas dua Column yang dibandingkan(MTPersonnel.EmpId & DTAbsensi.Userid):
Column Collation
MTPersonnel.EmpId SQL_Latin1_General_CP1_CI_AS
DTAbsensi.Userid Chinese_PRC_CI_AS
Mengatasinya:
Query harus sedikit dimodifikasi dengan menambahkan COLLATE diikuti Collation_Name “menyamakan collation untuk kedua column”
SELECT A.EmpId, A,EmpName, B.Userid FROM MTPersonnel AS A JOIN DTAbsensi AS B ON A.empId COLLATE Chinese_PRC_CI_AS =B.Userid;

2014 October 9 at 3:02 pm Leave a comment

Aggregate Query, dan Penggunaan Function pada SAP ABAP

Setelah sekian lama browsing-browsing dari berbagai sumber, akhirnya ketemu juga cara untuk membuat query Aggregate “Sum, Count,….”dan sekaligus penggunaan function dalam suatu query. Ini hasil Report yang diinginkan dalam bentuk summary
Image
Aggregate Query pada pemograman diluar ABAP merupakan hal yang mudah-mudah saja, tapi di SAP ABAP mesti muter-muter dulu cari referensi bagi “newbie” seperti saya, karena jika hanya ngandelin query standard SAP tidak akan bisa.
Trik-nya adalah kita mesti menggunakan yang namanya Native Query “bahasa query bawaan database yang dipakai, misalnya saya pakai database DB2”.

(more…)

2014 January 22 at 9:15 am Leave a comment

Langkah-langkah Merubah direktori datadir MYSQL

Semua kalangan baik perorangan maupun perusahaan sadar betul betapa berharganya data mereka, sehingga perusahaan tidak segan-segan  mengeluarkan investasi yang tidak sedikit untuk menjaga data mereka . Dalam rangka menjaga banyak sekali kegiatan-kegiatannya, salah satu yang terpentingnya adalah melakukan backup secara rutin.

Pertanyaanya apakah sederhana kegiatan backup-membackup ini. Tentu saja tidak jawabannya,  bayangkan perusahan yang memiliki aplikasi berjibun dengan penyimpanan berserakan yang disebakan ketidak pedulian ketika install yang hanya ngikutin alur default wizard install dengan gaya “next” “next” “next”-nya😀 , mudah memang waktu install tapi butuh tenaga hanya untuk mengidentifikasi apalagi backup-nya.

Bisa dibayangkan sang admin akan kesulitan dalam hal ini. Disini seni peran sang admin untuk membuat penyederhanaan. Misalnya penyeragaman tempat penyimpanan, baik itu aplikasi maupun database-nya. Misalnya saja dibuatkan folder “/data”, nantinya akan berisi sub-sub folder sesuai aplikasinya. Contoh yang akan saya bahas disini adalah bagaimana memindahkan direktori/folder MYSQL yang secara default “/var/lib/mysql” ke “/data/mysql”. di system pegel Linux 😀.

Berikut langkah-langkahnya:

(more…)

2013 December 13 at 9:38 am Leave a comment

Older Posts


Categories