coba dengan begini, pasti gak
bengong
rs.open "sql di
sini",....dst
intNumFields = ........Code untuk menghasilkan jumlah fields
strRs=""
screen.mousepointer=vbhourglass
do while
not rs.eof
doevents
for
i=0 to intNumFields -1
strRs=strRs
& rs.fields(i).value & ColumnSep
next i
strRs = strRs & RowSep
rs.movenext
loop
screen.mousepointer=vbnormal
program akan berjalan terus tanpa bengong, tandanya hanya cursor menjadi
sibuk
saat berjalan looping.
sy lebih prefer lagi ada satu variabel tambahan lagi (boolean)yg
menyatakan bahwa ada proses yg berjalan
karena kita pakai "doevents" kalau proses berlangsung bolean tersebut
true, kalau selesai false
di event form_terminate cek dulu bolean ini untu tau sedang ada proses
berlangsung atau tidak
kalau ada cancel terminate form. bolean ini diletakan disesudah
screen.mouse.......
IT WORKS Nice. lebih nice lagi dikasih timer jadi kita tau looping
tersebut sudah berjalan berapa lama...
HTH
----- Original Message -----
Sent: Monday, September 29, 2003 4:43
PM
Subject: [Programmer-VB] Tolong bantu
paling tidak dalam bentuk ide
Saya sedang membuat aplikasi client -server
menggunakan winsock (TCP/IP). Aplikasi server berjalan secara background
(service) dan dapat diakses melalui tray icon.
Aplikasi client diinstall pada setiap client
dan menggunakan port 55000.
Programnya berjalan dengan baik dan dapat
melayani banyak client sekaligus, namun ada masalah:
"program server hanya bisa melayani 1 jenis
system saja. misalnya program aplikasi billing. jadi setiap saya hendak
membuat 1 macam system informasi maka aplikasi servernya juga khsusus.
sehingga jika dalam 1 komputer server terdapat 2 atau lebih layanan system
informasi, maka aplikasi servernya juga dibuat 2 atau lebih"
Saya punya ide, dimana saya berusaha membuat 1
aplikasi server yang berfungsi seperti MS SQL Server, dan
berusaha membangun sintax sendiri seperti halnya sintax pada ADO namun
yang dapat dikenali oleh aplikasi server.
kesulitannya :
Saya belum menemukan algoritma yang cepat dan
tepat untuk melewatkan data berupa recordset melalui winsock. karena yang
saya tahu, untuk melewatkan data melalui winsock, maka variabelnya adalah
string. Karena itu saya membuat algortima kurang lebih sbb:
const ColumnSep = vbTab
const RowSep = vbcrlf &
chr$(7)
dim rs as ado.recordset
dim strRs as string, intNumFields as integer, i
as integer
rs.open "sql di
sini",....dst
intNumFields = ........Code untuk menghasilkan jumlah fields
strRs=""
do while
not rs.eof
for i=0 to intNumFields -1
strRs=strRs & rs.fields(i).value & ColumnSep
next i
strRs = strRs & RowSep
rs.movenext
loop
Dari sini saya peroleh variabel strRs yang siap
di transfer melalui winsock.
masalahnya terjadi proses looping yang membuat
server kepayahan. kalau jumlah record yang dihasilkan tidak banyak, maka
tidak masalah. namun jika jumlahnya banyak maka not responding.
Ada teman - teman yang mau
menanggapi?
salam,
zainal