| Re: Jak powinna wygl±daÄ™ wspó³praca miźdzy obiektami? |
|
 |
|
 |
|
 |
|
 |
Group: pl.comp.os.linux.programowanie · Group Profile
Author: konsul41konsul41 Date: Aug 19, 2008 00:34
Trochź kodu
Tworzenie obiektów
errorno=0;
plankont = new(Tplankont);if
(plankont==null){errorno=-1001;strcat(errorstr,"b³±d przydzia³u pamiźci dla
obiektu plankont");};
plankont->conn=conn;
plankont->test_plan_kont();
kontrachenci = new(Tkontrachenci); if
(kontrachenci==null){errorno=-1001;strcat(errorstr,"b³±d przydzia³uu
papamiźci obiektu kontrachenci");};
kontrachenci->conn=conn;
//kontrachenci->plankont=plankont;
dzienniki = new(Tdzienniki); if
(dzienniki==null){errorno=-1001;strcat(errorstr,"b³±d przydzia³uu papamiźci
obiektu dzienniki");};
dzienniki->conn=conn;
dzienniki->test_dzienniki();
dziennik = new(Tdziennik); if
(dziennik==null){errorno=-1001;strcat(errorstr,"b³±d przydzia³uu papamiźci
obiektu dziennik");};
dziennik->conn=conn;
kasa = new(Tkasa); if
(kasa==null){errorno=-1001;strcat(errorstr,"b³±d przydzia³u papamici obiektu
kasa");};
funkcja wywo³ywana
int Tplankont::nowe_konto(_konto konto)
{
if (konto.kontonad[0]!='9')
{
char numerkonta[13];
printf("Funkcja Tplankont::nowe_konto\n");
strcpy(numerkonta,konto.numerkonta);
strcpy(konto.numerkonta,konto.kontonad);
strcpy(konto.numerkonta,"-");
strcpy(konto.numerkonta,numerkonta);
printf("Numer konta: %%s\n",konto.numerkonta);
printf("Konto nadrzźdnw: %%s\n",konto.kontonad);
printf("Nazwa konta: %%s\n",konto.nazwakonta);
}
if (zalozkonto(konto)!=lsk_brak_konta)
{
return lsk_sukces;
}else lsk_brak_konta;
}
w obiekcie kontrachenci jest wskaznik na plankont.
funkcja wywo³uj±ca:
int Tkontrachenci::zaluz_liste(char nazwa_listy[60])
{
char lista[60]="\0";
strcpy(lista,nazwa_listy);
char *tabela;
printf("Zak³adanie listy kontrachentow\n");
tabela=(char*)malloc(sizeof(char)*1500);
strcpy(tabela,"SET CLIENT_ENCODING TO win1250;CREATE TABLE ");
strcat(tabela,lista);
strcat(tabela," (id_kontrachenta serial,");
...
strcat(tabela,"konto varchar(13)");
strcat(tabela,");");
printf("Napis: %%s\nma dlugosc: %%i\n",tabela,strlen(tabela));
rezultat=PQexec(conn,tabela);
pokaz_blad(rezultat);
fprintf(stderr,"Zalozono listź kontrachentów %%s\n",nazwa_listy);
free(tabela);
_konto konto;
strcpy(konto.kontonad,"9");
switch (nazwa_listy[0])
{
case 'o' :
{
switch (nazwa_listy[8])
{
case 'k' : strcpy(konto.numerkonta,"200");
strcpy(konto.nazwakonta,"odbiorcy krajowi");break;
case 'z' : strcpy(konto.numerkonta,"203");
strcpy(konto.nazwakonta,"odbiorcy zagraniczni");break;
}break;
}
case 'd' :
{
switch (nazwa_listy[8])
{
case 'k' : strcpy(konto.numerkonta,"202");
strcpy(konto.nazwakonta,"dostawcy krajowi");break;
case 'z' : strcpy(konto.numerkonta,"201");
strcpy(konto.nazwakonta,"dostawcy zagraniczni");break;
}break;
}
}
plankont->zalozkonto(konto); //brak powrotu z funkcji (program
zawiesza siź)
}
funkcja wywo³ywana --> plankont->zalozkonto(konto);
|