well, i'm making progress.
i took off the cast as char, and the CSTR  and now instead of my cryptic
message, i crash the whole application.

thats an improvement RIGHT???



-----Original Message-----
From: Walden H. Leverich [mailto:WaldenL@TechSoftInc.com]
Sent: Wednesday, December 26, 2001 3:03 PM
To: 'midrange-l@midrange.com'
Subject: RE: Visual Basic SQl statement


Yes, but it's not a date, it's an 8 position numeric field that the
programmers use as a date. Big difference.

-Walden


------------
Walden H Leverich III
President
Tech Software
(516)627-3800 x11
WaldenL@TechSoftInc.com
http://www.TechSoftInc.com



-----Original Message-----
From: Brad Jensen [mailto:brad@elstore.com]
Sent: Wednesday, December 26, 2001 14:27
To: midrange-l@midrange.com
Subject: Re: Visual Basic SQl statement


If that date was a PC SQL date, you would want #20021211# ,as best I
remember. Don't know what happens when you go to the AS/400 thru ODBC or OLE


The # at the start and end are field delimiters like quotes for text, that
say this is a date


"Walden H. Leverich" wrote:
>
> Gee, this will be a pain to debug, it's littered with the COM objects
> from the mapping program, what fun! <G>. First, for the record, you
> are using VB not VBA, VBA is a stripped down version of VB.
>
> As for debugging, I do see two problems. First: the way you are
> attempting to calculate the date won't work. Given your code:
>
> >CurrDate = CStr(MyYear) + CStr(MyMonth) + CStr(MyDay)
>
> IF MyMonth >=10 and MyDay >=10 all will be good. For example, a date
> of 12/26/2001 would end up as 20011231 which gives you your date.
> However, a date of 9/7/2001 would give you 200197 not 20010907, you
> are missing leading zeros.
>
> Why not replace everything from "Dim d" through "Currdate=" with one
> statement:
>
> Currdate = Format(date, "YYYYMMDD")
>
> Second, when you load SQLstr with the date (the commented out code)
> I'll bet you get an error about Currdate not being a field on the
> tables, no? Currdate is a field in the VB program, yes, but the SQL
> statement will run on the database server and it doesn't know about
> currdate. The easiest thing to do is change the SQLstr assignment as
> follows:
>
> SQLstr = "create view DISPATCH_V as select PZBSB, PZNAM, PZBDT cast as
> char, PZSCD, PZARA, P1RTE, P1STOP, P1SCD, PWLAT, PWLONG from UFDB,
> UFDBS, UCSRFD where PZBSB = P1BSB and P1MTR = PWMTR and PZBDT = " +
> cstr(Currdate)
>
> Note I've remove CurrDate from the string and instead I'm concating
> the value of currdate onto the end of the sql statement. This will
> result in a sql statement that says:
>
> ...and P1MTR = PWMTR and PZBDT = 20020101
>
> When the date is 1/1/2002.
>
> Hope this helps.
>
> -Walden
>
> ------------
> Walden H Leverich III
> President
> Tech Software
> (516)627-3800 x11
> WaldenL@TechSoftInc.com
> http://www.TechSoftInc.com
>
> -----Original Message-----
> From: Smith, Mike [mailto:Mike_Smith@RGCResources.com]
> Sent: Wednesday, December 26, 2001 12:29
> To: 'midrange-l@midrange.com'
> Subject: RE: Visual Basic SQl statement
>
> Walden,
> i'm on V4r5.  client access express.   win2k.
>
> as for the code, i didn't really write it(because i don't know enough
> about VB to try to write it).  i am using a package called ESRI.  It
> is a mapping software, and the code is a sample code(they provided)
> that allows me to plot points on to the map. here is the code. Thanks
> for any help you can provide.
>
> Private Sub UIButtonControl2_Click()
> '++ adds an OLE DB table as an XYEvent layer
> '++
>  On Error GoTo ErrorHandler:
>
>  Dim d
>  d = Format(Date, "Short Date")
>  MyDay = Day(d)
>  MyMonth = Month(d)
>  MyYear = Year(d)
>
>  Dim curdate As String
>  CurrDate = CStr(MyYear) + CStr(MyMonth) + CStr(MyDay)
>
>   '++ New property set for workspacefactory
>   Dim pPropset As IPropertySet
>   Set pPropset = New PropertySet
>
>   '++ Provider =
>   pPropset.SetProperty "CONNECTSTRING", "Provider=MSDASQL.1;Data
> source=RGOCCSTM;User ID=;Password="
>
>   Dim pWorkspaceFact As IWorkspaceFactory
>   Set pWorkspaceFact = New OLEDBWorkspaceFactory
>
>   '++ Create the new workspace/feature workspace objects
>   Dim pWorkspace As IWorkspace
>   Set pWorkspace = pWorkspaceFact.Open(pPropset, 0)
>
>   Dim pFeatWorkspace As IFeatureWorkspace
>   Set pFeatWorkspace = pWorkspace
>
>   '++ If a sub-set of the table is required and views are supported by
> the data source
>   '++ create a view of the table selection you wish to use.
>   Dim SQLstr As String
>   SQLstr = "create view DISPATCH_V as select * from UFDB,UFDBS,UCSRFD
> where PZBSB = P1BSB and P1MTR = PWMTR where PZBSB > 0"
>   'SQLstr = "create view DISPATCH_V as select PZBSB, PZNAM, PZBDT cast
> as char, PZSCD, PZARA,P1RTE,P1STOP,P1SCD,PWLAT, PWLONG from
> UFDB,UFDBS,UCSRFD where PZBSB = P1BSB and P1MTR = PWMTR and PZBDT =
> Currdate"
>
>   '++ Create the view and fetch the datasetnames from the workspace
>   pWorkspace.ExecuteSQL SQLstr
>
>   Dim pEnumDataset As IEnumDatasetName
>   Dim pDataset As IDatasetName
>
>   Set pEnumDataset = pWorkspace.DatasetNames(esriDTAny)
>   Set pDataset = pEnumDataset.Next
>
>   Do Until pDataset Is Nothing
>     If pDataset.Name = "RGOCCSTM.DISPATCH_V" Then
>       Exit Do
>     End If
>     Set pDataset = pEnumDataset.Next
>   Loop
>
>   '++ Create the new table object from the dataset name
>   Dim pTable As ITable
>   Set pTable = pFeatWorkspace.OpenTable(pDataset.Name)
>
>   Dim pDoc As IMxDocument
>   Set pDoc = ThisDocument
>   Dim pMap As IMap
>   Set pMap = pDoc.FocusMap
>
>   Dim pTableName As IName
>   Dim pDS As IDataset
>   Set pDS = pTable
>   Set pTableName = pDS.FullName
>
>   '++ Set the field properties for the event theme
>   Dim pXYEvent2FieldsProperties As IXYEvent2FieldsProperties
>   Set pXYEvent2FieldsProperties = New XYEvent2FieldsProperties
>   With pXYEvent2FieldsProperties
>     .XFieldName = "PWLONG"
>     .YFieldName = "PWLAT"
>     .ZFieldName = ""
>   End With
>
>   '++ Set the spatial reference for the event theme
>   Dim pSpatialReferenceFactory As ISpatialReferenceFactory
>   Dim pProjectedCoordinateSystem As IProjectedCoordinateSystem
>
>   Set pSpatialReferenceFactory = New SpatialReferenceEnvironment
>   Set pProjectedCoordinateSystem =
> pSpatialReferenceFactory.CreateProjectedCoordinateSystem(esriSRProjCS_
> NAD198
> 3UTM_11N)
>
>   Dim pXYEventSourceName As IXYEventSourceName
>   Set pXYEventSourceName = New XYEventSourceName
>
>   '++ Combine all the properties for the event theme
>   With pXYEventSourceName
>     Set .EventProperties = pXYEvent2FieldsProperties
>     Set .SpatialReference = pProjectedCoordinateSystem
>     Set .EventTableName = pTableName
>   End With
>
>   Dim pName As IName
>   Dim pXYEventSource As IXYEventSource
>   Set pName = pXYEventSourceName
>   Set pXYEventSource = pName.Open
>
>   '++ Create a new feature layer object for the event theme
>   Dim pflayer As IFeatureLayer
>   Set pflayer = New FeatureLayer
>   Set pflayer.FeatureClass = pXYEventSource
>   pflayer.Name = "Todays Dispatching"
>
>   '++ Add the layer extension (required to ensure when you edit
>   '++ the layer's Source properties and click the Set Data Source
>   '++ button, the correct "Add XY Events" Dialog appears)
>   Dim pLayerExt As ILayerExtensions
>   Dim pRESPageExt As New XYDataSourcePageExtension
>   Set pLayerExt = pflayer
>   pLayerExt.AddExtension pRESPageExt
>
>   '++ add the new layer to the display
>   pMap.AddLayer pflayer
>
>   Exit Sub
> ErrorHandler:
>   MsgBox Err.Number & Err.Description
> End Sub
>
> -----Original Message-----
> From: Walden H. Leverich [mailto:WaldenL@TechSoftInc.com]
> Sent: Wednesday, December 26, 2001 11:52 AM
> To: 'midrange-l@midrange.com'
> Subject: RE: Visual Basic SQl statement
>
> You really don't want to do that, you'd force the AS/400 to run the
> digits command for each row before comparing it. If there is an index
> that it could use you just threw it out the window.
>
> Mike, the statement you showed won't allow you to select records, it
> creates a view. To select records you don't want the 'create view as'
> part. Can you post the surrounding VBA code? I haven't hit any
> problems with numeric fields in a long time. What versions are
> involved? (AS/400, Client Access, ADO (you are using ADO, no?) and PC
> Operating system?)
>
> -Walden
>
> ------------
> Walden H Leverich III
> President
> Tech Software
> (516)627-3800 x11
> WaldenL@TechSoftInc.com
> http://www.TechSoftInc.com
>
> -----Original Message-----
> From: Bill [mailto:brobins3d@yahoo.com]
> Sent: Wednesday, December 26, 2001 10:57
> To: midrange-l@midrange.com
> Subject: Re: Visual Basic SQl statement
>
> Mike,
>
> Does it work correctly in MS Query, but throws an error when doing the
> download to your application?  If so, this seems to be an error in
> MS's products; they seem to cast the parameter's data type
> incorrectly.  Usually when I've had problems it's because I'm trying
> to use a parameterized query with a numeric field being one of the
> parameters.  This doesn't seem to be your case, but I'll share what I
> do anyways.  Use the Digits() function to turn your numeric field into
> an alpha/numeric field and then compare to a character value.
>
> In your case, the Where statement should be changed to:
> Digits(PZBSB) > '00000000'
>
> Bill
>
> > I'm trying to run a sql statement using ODBC through a VBA.  The
> > Database on the 400 has a Numeric field defined 8.0p(used as a date
> > field). i've created a SQL statement that lets me select records
> > from the file, however, when i try to condition the select based on
> > the date field i get cryptic errors.
> >
> > Here is my select statement.
> >   SQLstr = "create view DISPATCH_V as select * from
> > UFDB,UFDBS,UCSRFD where PZBSB = P1BSB and P1MTR = PWMTR and PZBSB >
> > 0"
>
> _________________________________________________________
> Do You Yahoo!?
> Get your free @yahoo.com address at http://mail.yahoo.com
>
> _______________________________________________
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
> list To post a message email: MIDRANGE-L@midrange.com To subscribe,
> unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/midrange-l
> or email: MIDRANGE-L-request@midrange.com
> Before posting, please take a moment to review the archives at
> http://archive.midrange.com/midrange-l.
> _______________________________________________
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
> list To post a message email: MIDRANGE-L@midrange.com To subscribe,
> unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/midrange-l
> or email: MIDRANGE-L-request@midrange.com
> Before posting, please take a moment to review the archives at
> http://archive.midrange.com/midrange-l.
> _______________________________________________
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
> list To post a message email: MIDRANGE-L@midrange.com To subscribe,
> unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/midrange-l
> or email: MIDRANGE-L-request@midrange.com
> Before posting, please take a moment to review the archives at
> http://archive.midrange.com/midrange-l.
> _______________________________________________
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
> list To post a message email: MIDRANGE-L@midrange.com To subscribe,
> unsubscribe, or change list options,
> visit: http://lists.midrange.com/cgi-bin/listinfo/midrange-l
> or email: MIDRANGE-L-request@midrange.com
> Before posting, please take a moment to review the archives at
> http://archive.midrange.com/midrange-l.

--
Brad Jensen brad@elstore.com
President
Electronic Storage Corporation Tulsa OK USA
918-664-7276

LaserVault Report Retrieval & Data Mining
www.Laservault.com

www.eufrates.com - Add distance learning to
your site with easy course preparation
_______________________________________________
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@midrange.com To subscribe, unsubscribe,
or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/midrange-l
or email: MIDRANGE-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.
_______________________________________________
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list
To post a message email: MIDRANGE-L@midrange.com
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/cgi-bin/listinfo/midrange-l
or email: MIDRANGE-L-request@midrange.com
Before posting, please take a moment to review the archives
at http://archive.midrange.com/midrange-l.


As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.