Date: Sun, 20 Jan 2008 22:43:06 -0500
Reply-To: "Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>
Sender: "SAS(r) Discussion" <SAS-L@LISTSERV.UGA.EDU>
From: "Howard Schreier <hs AT dc-sug DOT org>" <nospam@HOWLES.COM>
Subject: Re: What's wrong with that??? (libname statement with pc files
formats)
On Sun, 20 Jan 2008 14:57:37 -0800, Alex_fr <alx_32@HOTMAIL.COM> wrote:
>Hi there,
>
>I create in the access file 'c:\temp\db2.mdb' a table with 1000 rows
>with a variable x=1,..,1000.
>I tried to delete the rows for witch x >10. Only the rows x=11 and
>x=12 are deleted!!
>
>libname mydb 'c:\temp\db2.mdb';
The ACCESS engine is not specified. I would code this as
libname mydb access 'c:\temp\db2.mdb';
But in fact SAS seems to associate the libref with MS Access either way.
>
>data mydb.delme;
> do x=1 to 1000; output;end;
> run;
>
>NOTE: The data set MYDB.delme has 1000 observations and 1 variables.
>
> proc sql;
> delete * from mydb.delme
The asterisk is extraneous and its acceptability is undocumented. DELETE is
a row-wise operation; you cannot specify columns. Nevertheless SAS seems to
just ignore the asterisk.
> where x >10;
> select count(*) as nb from mydb.delme
> where x >10;
>
>NOTE: 2 rows were deleted from MYDB.delme. (!!!!!!)
>
> nb
>-----------------
> 988
>
>Can anyone explain me what is this stange behaviour?
It is strange. I got the same behavior, whether or not I made the changes
suggested by my comments above. I would take it up with SAS Tech Support.
>
>Thanks in advance
>Alexandre