compilation error

Dear KDB users,

Can I ask a “dumb” question? Look at the following code: if I change
K x=knk(6, ktn(KI, bulkSize), ktn(KC, bulkSize), ktn(KH, bulkSize),
ktn(KI, bulkSize), \
ktn(KF, bulkSize), ktn(KS, bulkSize));
to
K y=knk(6, ktn(KI, bulkSize), ktn(KC, bulkSize), ktn(KH, bulkSize),
ktn(KI, bulkSize), \
ktn(KF, bulkSize), ktn(KS, bulkSize));
how can I make change to

kI(xK[0])[i] = i;
kC(xK[1])[i] = ‘a’;
kH(xK[2])[i] = 100;
kI(xK[3])[i] = 1000;
kF(xK[4])[i] = 99.9;
kS(xK[5])[i] = (S)“hello world”;

Simply replace x with y gives me a compilation error.

Thanks,

dbtouch

#include “k.h”
#include “stdio.h”
int main(int argc, char* argv)
{
K err;
I kdbSocketHandle = khp(“localhost”, 5001);
if (kdbSocketHandle > 0)
{
int bulkSize=3;
K x=knk(6, ktn(KI, bulkSize), ktn(KC, bulkSize), ktn(KH, bulkSize),
ktn(KI, bulkSize), \
ktn(KF, bulkSize), ktn(KS, bulkSize));
for(int i=0; i kI(xK[0])[i] = i;
kC(xK[1])[i] = ‘a’;
kH(xK[2])[i] = 100;
kI(xK[3])[i] = 1000;
kF(xK[4])[i] = 99.9;
kS(xK[5])[i] = (S)“hello world”;
}
for (int j=0; j<2; j++){
r1(x);
err=k(-kdbSocketHandle, “.u.upd”, ks((S)“all_dt”), x, (K)0);
}

if (err->t==-128)
{
printf(“err: %s\n”, err->s);
}
k(kdbSocketHandle,“”,(K)0); // flush
}
}

read k.h

xK is a macro for ((K*)x->G0) only defined for x

for y, either add a matching definition or do the expansion yourself

Sent from my iPhone

Thanks, Aaron. That is the reason!dbtouchOn Sep 30, 8:28?am, Aaron Davies <aaron.dav…> wrote:> read k.h>> xK is a macro for ((K*)x->G0) only defined for x>> for y, either add a matching definition or do the expansion yourself>> Sent from my iPhone>> On Sep 30, 2008, at 1:57 AM, dbtouch <dbto…> wrote:>>>>>> > Dear KDB users,>> > Can I ask a “dumb” question? Look at the following code: if I change> > K x=knk(6, ktn(KI, bulkSize), ktn(KC, bulkSize), ktn(KH, bulkSize),> > ktn(KI, bulkSize), &gt; > ? ? ? ? ? ?ktn(KF, bulkSize), ktn(KS, bulkSize));> > to> > K y=knk(6, ktn(KI, bulkSize), ktn(KC, bulkSize), ktn(KH, bulkSize),> > ktn(KI, bulkSize), &gt; > ? ? ? ? ? ?ktn(KF, bulkSize), ktn(KS, bulkSize));> > how can I make change to>> > kI(xK[0])[i] = i;> > kC(xK[1])[i] = ‘a’;> > kH(xK[2])[i] = 100;> > kI(xK[3])[i] = 1000;> > kF(xK[4])[i] = 99.9;> > kS(xK[5])[i] = (S)“hello world”;>> > Simply replace x with y gives me a compilation error.>> > Thanks,>> > dbtouch>> > #include “k.h”> > #include “stdio.h”> > int main(int argc, char* argv)> > {> > ? ?K err;> > ? ?I kdbSocketHandle = khp(“localhost”, 5001);> > ? ?if (kdbSocketHandle > 0)> > ? ?{> > ? ? ? ?int bulkSize=3;> > ? ? ? ?K x=knk(6, ktn(KI, bulkSize), ktn(KC, bulkSize), ktn(KH, ?> > bulkSize),> > ktn(KI, bulkSize), &gt; > ? ? ? ? ? ?ktn(KF, bulkSize), ktn(KS, bulkSize));> > ? ? ? ?for(int i=0; i > ? ? ? ? ? ?kI(xK[0])[i] = i;> > ? ? ? ? ? ?kC(xK[1])[i] = ‘a’;> > ? ? ? ? ? ?kH(xK[2])[i] = 100;> > ? ? ? ? ? ?kI(xK[3])[i] = 1000;> > ? ? ? ? ? ?kF(xK[4])[i] = 99.9;> > ? ? ? ? ? ?kS(xK[5])[i] = (S)“hello world”;> > ? ? ? ?}> > ? ? ? ?for (int j=0; j<2; j++){> > ? ? ? ? ? ?r1(x);> > ? ? ? ? ? ?err=k(-kdbSocketHandle, “.u.upd”, ks((S)“all_dt”), x, ?> > (K)0);> > ? ? ? ?}>> > ? ? ? ?if (err->t==-128)> > ? ? ? ?{> > ? ? ? ? ? ?printf(“err: %s\n”, err->s);> > ? ? ? ?}> > ? ? ? ?k(kdbSocketHandle,“”,(K)0); // flush> > ? ?}> > }- Hide quoted text ->> - Show quoted text -</dbto…></aaron.dav…>