Παράδειγμα χρήσης SQL()

405 views
Skip to first unread message

JacarandaBill

unread,
Apr 11, 2008, 2:48:51 AM4/11/08
to Softone Developers Network
Καλημέρα σας,

Μπορεί να μου δώσει κάποιος ένα παράδειγμα χρήσης της συνάρτησης:
function SQL(ASQL: string; AParams: Variant):string;
που θα εκτελείται στο Script μιας προβολής;

Κάτι σαν το παρακάτω:

function ON_ITELINES_SRCHCODE() {
var res;

res = X.sql("SELECT TOP 1 M.DISC1PRC, M.DISC2PRC, M.DISC3PRC FROM
MTRLINES M, FINDOC F WHERE M.FINDOC = F.FINDOC AND M.SOSOURCE=1251 AND
((M.DISC1PRC IS NOT NULL) OR (M.DISC2PRC IS NOT NULL) OR (M.DISC3PRC
IS NOT NULL)) AND M.MTRL = 27774 ORDER BY INSDATE DESC", null);
}

To παραπάνω μου βγάζει "Could not convert variant of type (Null) into
type (String)".

Eπίσης με ποιο τρόπο θα παρσάρω το αποτέλεσμα;

Ευχαριστώ,
Bασίλης Σαμαλτάνος
Databank

JohnG

unread,
Apr 11, 2008, 12:26:22 PM4/11/08
to Softone Developers Network
Βασίλη γεια

Η καλύτερη εντολή για αυτή την περίπτωση είναι η :

function GETSQLDATASET(ASQL: string; AParams: Variant): TDataSet
Επιστρέφει DataSet που δημιουργεί από το ASQL. AParams παράμετροι του
ASQL

Στο DataSet IDispatch Interface που επιστρέφει έχεις την δυνατότητα να
προσπελάσεις τις τιμές με τα ονόματα τους. Αλλά να κινηθείς και σε
επόμενα records αν υπάρχουν.
Δες και αυτό το PDF : WScript Methods and Events.pdf

Ελπίζω να βοήθησα.

JohnG

JacarandaBill

unread,
Apr 12, 2008, 5:07:28 AM4/12/08
to Softone Developers Network
Γιάννη ευχαριστώ, θα την κοιτάξω και την GETSQLDATASET.
Ωστόσο και στις δυο περιπτώσεις θα πρέπει να μάθω τον σωστό τρόπο για
να περνάω την AParams ώστε να μην παίρνω το "Could not convert variant
of type (Null) into type (String)". Μπορείς να μου πεις αν δεν έχω
παραμέτρους τι πρέπει να περάσω στην θέση της AParams;

Νίκος Μάλιακκας

unread,
Apr 12, 2008, 9:14:15 AM4/12/08
to Softone Developers Network
EXAMPLES (WORKING)


MSQL= 'SELECT ISNULL(C.CCCGASCUSTYPE,-1)
CCCGASCUSTYPE,ISNULL(E.UTBL01,-1) UTBL01 FROM TRDEXTRA E,TRDR C'
+ ' WHERE C.TRDR=E.TRDR AND C.SODTYPE=13 AND
C.TRDR='+FINDOC.TRDR;
tDS=X.GETSQLDATASET( MSQL,'' );
if (tDS.RECORDCOUNT > 0){
chk1=tDS.CCCGASCUSTYPE;
chk2=tDS.UTBL01;
}




==========


sqlstr= "SELECT CONVERT(VARCHAR(20),F.TRNDATE,103) AS FDATE,
T.CODE, T.NAME, CONVERT(VARCHAR(20),GETDATE(),108) AS CTIME ";
sqlstr+= " FROM FINDOC F, TRUCKS T, MTRDOC MD WHERE
T.TRUCKS=MD.TRUCKS AND F.FINDOC=MD.FINDOC ";
sqlstr+= " AND F.FINDOC=" + FINDOC.FINDOC;

rst=X.GETSQLDATASET(sqlstr,'nothing');



On 11 Απρ, 09:48, JacarandaBill <jacarandab...@gmail.com> wrote:

Νίκος Μάλιακκας

unread,
Apr 12, 2008, 9:24:43 AM4/12/08
to Softone Developers Network
ENA AKOMH PARADEIGMA...

function UpdatePrintedDocs(){
var sqlstr, rst, MyTruck, MyBranch, MyFullDate, MyDate;
MyTruck=MTRDOC.TRUCKS;
MyBranch=FINDOC.BRANCH;
MyFullDate=new Date(FINDOC.TRNDATE);
MyDate=SqlDate(MyFullDate);

sqlstr= "UPDATE FINDOC SET CCCPRINTDIAD=1 ";
sqlstr+= " FROM MTRDOC MD ";
sqlstr+= "WHERE MD.FINDOC=FINDOC.FINDOC AND MD.TRUCKS=" +MyTruck;
sqlstr+= " AND FINDOC.TRNDATE='" + MyDate + "'" ;
sqlstr+= " AND FINDOC.BRANCH=" + MyBranch;
sqlstr+= " AND FINDOC.SOSOURCE=1351" ;
sqlstr+= " AND ISNULL(FINDOC.CCCPRINTDIAD,0)=0";


rst=X.RUNSQL(sqlstr,'nothing');
return(rst);
}

On 11 Απρ, 09:48, JacarandaBill <jacarandab...@gmail.com> wrote:

JacarandaBill

unread,
Apr 14, 2008, 4:15:11 AM4/14/08
to Softone Developers Network
Το κατάλαβα, ευχαριστώ πολυ για τα παραδείγματα.
H GETSQLDATASET() παίζει μια χαρά.
Reply all
Reply to author
Forward
0 new messages