Hi Todd McNeil,
The problem in this code mainly lies in the line that has been
coloured blue below.The problem persists because you are trying to insert
the values of oObj, rArea and the rPerim but in the columns to which these
value have to be assigned are not speciifed (Insert Into gsIntTable (Obj)
).When ever you have to insert valuse into a table by specific column wise
then both the insert statement and the values clause in the statement
should have the respective columns specified. This would be as follows in
your statements case:
Insert Into gsIntTable (Obj,(name of the area column), (the name of the
perimeter column)) Values (oObj, rArea, rPerim)
Thanks
UJVALA KAKKAR
Software Engineer
Risk Management Software India Pvt. Ltd.
TMCNEIL <[EMAIL PROTECTED]> on 07/01/99 09:16:00 PM
To: [EMAIL PROTECTED]
cc: (bcc: Tech Notes/RMSI)
Subject: MI MapBasic
I am trying to manipulate some code where the intersections of
overlapping polygons are drawn as a table. Here's the code:
Sub MakeReg
Dim brushStyle As Brush
Dim penStyle As Pen
Dim oObj As Object
Dim rArea As Integer
Dim rPerimeter As Integer
If TableInfo(TempHold,TAB_INFO_NROWS) < 2 Then
Note "At Least 2 Region Objects Must Have Been Selected."
Else
Dialog Title "Choose Parameters"
Control StaticText Position 10,10 Title "File
Name:"
Control EditText Position 15,20 Into
gsIntTable Value gsIntTable Width 100 ID 1
Control StaticText Position 10,40 Title "Fill
Pattern:"
Control BrushPicker Position 15,50 Value
CurrentBrush() Width 20 Height 20 Into brushStyle
Control StaticText Position 60,40 Title "Line
Style:"
Control PenPicker Position 65,50 Value
CurrentPen() Width 20 Height 20 Into penStyle
Control OKButton Calling ChkFile
Control CancelButton
If CommandInfo(CMD_INFO_DLG_OK) Then
Set Event Processing Off
Create Table gsIntTable (ID Integer, AREA Integer,
Perimeter Integer)
Create Map For gsIntTable
Set Style Brush brushStyle
Set Style Pen penStyle
Create Object As Intersect From TempHold Into
Variable oObj
rArea = Area(oObj, "sq mi")
rPerim = Perimeter(oObj, "nmi")
If ObjectInfo(oObj,OBJ_INFO_NPNTS) = 0 Then
Note "No Common Intersection Found."
Drop Table gsIntTable
Else
Alter Object oObj Info OBJ_INFO_BRUSH, brushStyle
Alter Object oObj Info OBJ_INFO_PEN, penStyle
Insert Into gsIntTable (Obj) Values (oObj, rArea, rPerim)
Run Menu Command M_ANALYZE_UNSELECT
Commit Table gsIntTable
Add Map Auto Layer gsIntTable
Set Map Layer gsIntTable Editable On
End If 'was int found
gbStartProc = False
Alter Menu Item MakeReg Disable
Alter Menu Item BeginAccum text "&Begin
Accumulating"
Drop Table TempHold
End If 'ok hit
End If 'more than 1 obj selected
End Sub
Basically what I am trying to do is Find out what the Area and
Perimeter is of the new Object created by an intersection and write it
to the new table created called TempHold. I can make the table with
the correct columns but I keep getting a message that says: "Number
of columns in selection must be equal to the number of columns being
inserted."
Any ideas? I think I may be close.
Todd McNeil
ARINC
GIS Specialist
Annapolis, Maryland
----------------------------------------------------------------------
To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put
"unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]
----------------------------------------------------------------------
To unsubscribe from this list, send e-mail to [EMAIL PROTECTED] and put
"unsubscribe MAPINFO-L" in the message body, or contact [EMAIL PROTECTED]