# Vbscript samples

**URL:** <https://forums.toadworld.com/t/vbscript-samples/42435>\
**Category:** Toad Data Modeler\
**Created:** [September 14, 2018, 10:05am UTC](https://forums.toadworld.com/t/vbscript-samples/42435 "2018-09-14T10:05:25Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![jmo](https://avatars.discourse-cdn.com/v4/letter/j/ed655f/32.png) [@jmo](https://forums.toadworld.com/u/jmo)\
**Post date:** [September 14, 2018, 10:05am UTC](https://forums.toadworld.com/t/vbscript-samples/42435/1 "2018-09-14T10:05:25Z")

</div>

Could some one provide me with a sample set of vbscript for Toad Data Modeler, 6.4?

I can’t find any simple samples, like init the script and loop trought all entities.

Thanks.

---

<div class="post-metadata">

**Author:** ![Daril](https://sea1.discourse-cdn.com/quest/user_avatar/forums.toadworld.com/daril/32/31_2.png) [@Daril](https://forums.toadworld.com/u/Daril)\
**Post date:** [September 18, 2018, 5:15am UTC](https://forums.toadworld.com/t/vbscript-samples/42435/2 "2018-09-18T05:15:13Z")

</div>

Hello jmo,  
can be JScript instead VBscript. All examples are in JScript, I’m able provide to you almost everything possible in TDM in Jscript.

Daril

---

<div class="post-metadata">

**Author:** ![Mario.Tkacik](https://avatars.discourse-cdn.com/v4/letter/m/e68b1a/32.png) [@Mario.Tkacik](https://forums.toadworld.com/u/Mario.Tkacik)\
**Post date:** [September 18, 2018, 7:30am UTC](https://forums.toadworld.com/t/vbscript-samples/42435/3 "2018-09-18T07:30:33Z")

</div>

Hi jmo,

This example in VBscript change all key attributes to Not Null:

```auto
Sub main()
  Set TDMLog = System.CreateObject("Log")
  For i = 0 To Model.Entities.Count-1
    Set Ent = Model.Entities.GetObject(i)
    For j = 0 To Ent.Attributes.Count-1
      Set Attr = Ent.Attributes.GetObject(j)
      If Attr.KeyConstraintItems.Count > 0 then
        If not Attr.NotNull then
          Ent.Lock
          Attr.NotNull = true
          TDMLog.Information("Attribute "+Attr.Name+" in Entity "+Ent.Name+" is set to Not Null")
          Ent.UnLock
        End If
      End If
    Next
  Next
End Sub
```

But I strongly recommended you using JScript.

Same example in JScript:

```auto
function main()
{
  for (i=0; i<Model.Entities.Count; i++)
  {
    Ent = Model.Entities.GetObject(i);
    for (j=0; j<Ent.Attributes.Count; j++)
    {
      Attr = Ent.Attributes.GetObject(j);
      if (Attr.KeyConstraintItems.Count > 0)
        if (! Attr.NotNull)
        {
          Ent.Lock();
          Attr.NotNull = true;
          Log.Information("Attribute "+Attr.Name+" in Entity "+Ent.Name+" is set to Not Null");
          Ent.UnLock();
        }
    }
  }  
}
```

---

<div class="post-metadata">

**Author:** ![jmo](https://avatars.discourse-cdn.com/v4/letter/j/ed655f/32.png) [@jmo](https://forums.toadworld.com/u/jmo)\
**Post date:** [September 18, 2018, 7:49am UTC](https://forums.toadworld.com/t/vbscript-samples/42435/4 "2018-09-18T07:49:08Z")

</div>

Daril,

Thank you for reply to my request.

Yes, I’ve come to the conclussion myself, that I have to re-write my ‘very old, +10 years’ vbscript to jscript. I think it’s worth the hard work.

Most of the time, I have a idea of what I want to do/modeling. But it is sometime difficult to find the way how to acces, set or change a particual setting within a model. Eg. how do I access an entity collation setting and clear or change it?

The hard work also have a benefit in the future.

Thank you.

/John

---

<div class="post-metadata">

**Author:** ![jmo](https://avatars.discourse-cdn.com/v4/letter/j/ed655f/32.png) [@jmo](https://forums.toadworld.com/u/jmo)\
**Post date:** [September 18, 2018, 7:51am UTC](https://forums.toadworld.com/t/vbscript-samples/42435/5 "2018-09-18T07:51:42Z")

</div>

Mario

I got the point, that Jscript is the way of doing it now.

Soo I will following your recommendation and re-write my VB into Jscript.

Thank you for your reply.

/John
